Как использовать оператор SQL LIKE в MongoDB
MongoDB — мощный сервер базы данных Nosql. Он использует документы, подобные JSON, с дополнительными схемами для хранения данных.
Организация данных всегда является важной задачей разработчика. Поскольку он играет важнейшую роль в производительности приложения. В Mongodb вы можете использовать запросы, похожие на оператор SQL LIKE, для извлечения данных.
В примерах, используемых в этом руководстве, мы используем некоторые фиктивные данные, как показано ниже. Вы также можете создать базу данных и выполнить приведенные ниже команды для вставки фиктивных данных.
db.colors.insert({ "id": 100, "color": "Pink"}) db.colors.insert({ "id": 101, "color": "Purple"}) db.colors.insert({ "id": 102, "color": "Black"}) db.colors.insert({ "id": 103, "color": "Blue"})
Использование .find()
Команда Mongodb find() используется для поиска документов в коллекции. Эта функция предоставляет гибкие возможности поиска документов.
Функция find() по умолчанию извлекает все документы в коллекции. Он также позволяет запрашивать коллекцию документов, передавая несколько простых параметров, и возвращать курсор.
Простой пример метода .find() выглядит так:
db.colors.find()
{"_id": ObjectId ("5f697e4ccc528930cde49f53"), "id": 100, "color": "Pink"} {"_id": ObjectId ("5f697e4fcc528930cde49f54"), "id": 101, "color": "Purple"} {"_id": ObjectId ("5f697e52cc528930cde49f55"), "id": 102, "color": "Черный"} {"_id": ObjectId ("5f697e55cc528930cde49f56"), "id": 103, "color": "Синий"}
Вышеупомянутое возвращает все документы в коллекции. Давайте отфильтруем результаты из базы данных.
Например, выборка всех документов содержащих "color": "Pink"
. Выполните такой запрос:
db.colors.find ({color: "Pink"})
Использование .find() в качестве оператора SQL LIKE
Вы можете использовать регулярное выражение для поиска документов в monogdb. Это будет похоже на операторы LIKE в запросах SQL.
P/»)Search String End With — символ доллара «$» используется для сопоставления конца строки с определенными символами. В приведенном ниже примере все строки заканчиваются символом «k».
### SQL Statement select * from colors where color LIKE "%k" ### Mongodb Statement db.colors.find(color: "/k$/")
Search String In Any Case — это метод поиска по умолчанию с учетом регистра символов. Вы можете поручить команде find в любом случае сопоставить символы с параметром «i», как это используется в приведенном ниже примере.
### SQL Statement select * from colors where color LIKE BINARY "pink" ### Mongodb Statement db.colors.find(color: "/pink/i")
SQL Символы подстановки и регулярные выражения LIKE
Базы данныхЧасто, для фильтрации данных, нам нужно будет осуществить выборку не по точному совпадении условия, а по приближенному значению. То есть когда, например, мы ищем товар, название которого соответствует определенному шаблону или содержит определенные символы или слова.
1. Метасимвол знак процента (%) или звездочка (*)
Давайте из нашей таблицы, например, отберем записи, относящиеся только к товарам, содержащих в своем названии слово Skis (лыжи). Для этого составим соответствующий шаблон:
SELECT * FROM Sumproduct WHERE Product LIKE ‘*Skis*’
Как видим, СУБД отобрала только те записи, где в колонке Product были товары, содержащие слово Skis. Также отметим, что в данном примере используется метасимвол «звездочка» (*), поскольку СУБД Access не поддерживает «знак процента» (% ) для оператора LIKE.
2. Метасимвол знак подчеркивания (_) или знак (?)
Знак подчеркивания или вопросительный знак применяется для того, чтобы заменить один символ в слове. Давайте в слове Bikes заменим все гласные буквы на «вопросительный знак» (?) и посмотрим на результат:
SELECT * FROM Sumproduct WHERE Product LIKE ‘B?k?s’
Мы использовали метасимвол «вопросительный знак» (?), поскольку СУБД Access не поддерживает «знак подчеркивания» (_) для оператора LIKE.
3. Метасимвол квадратные скобки (
[ ])Метасимвол «квадратные скобки» ([ ]) используется для одновременного указания набора символов, по которым нужно выполнить поиск.
) (для других СУБД).SELECT * FROM Sumproduct WHERE City LIKE ‘[!TN]*’
То есть, последний созданный нами запрос будет читаться как: выбрать все колонки из таблицы Sumproduct и только те записи, где в поле City названия городов не начинаются на буквы T или N. Дополнительно отметим, что набор букв в метасимволе «квадратные скобки» отвечает только за одну позицию в тексте.
Мы можем получить аналогичный результат, если воспользоваться уже известным нам оператором NOT, однако с восклицательным знаком (!) запись будет короче.
Предложение SQL LIKE | Полное руководство по оператору SQL Like с примерами
SQL может иметь несколько операторов условий, и «Like» — это одно из таких условий, которое можно использовать вместе с предложением условия «Where». С предложением «Мне нравится» можно работать с двумя операторами, а именно «%» и «_».
В предложении LIKE используются два подстановочных знака в комбинации:
- Знак процента (%)
- Подчеркивание (_)
Знак процента обозначает ноль, один или несколько символов. Подчеркивание символизирует отдельное число или символ. Подстановочные знаки используются для достижения соответствия шаблону в запросе. Условие LIKE будет применяться в предложении WHERE оператора INSERT, DELETE, UPDATE или SELECT.
Синтаксис:
Основной синтаксис предложения LIKE % и _ следующий
Выберите * Из Table_Name, где столбец, такой как 'x%'
SELECT * FROM TABLE_NAME, где столбец, такой как '%x%'
SELECT * FROM TABLE_NAME, где столбец, такой как 'x_
SELECT * FROM имя_таблицы WHERE столбец LIKE '_X'
SELECT * FROM имя_таблицы WHERE столбец LIKE '_X_'
Используя операторы И или ИЛИ, мы можем комбинировать ряд условий, где X — любая строка или числовое значение.
Как предложение LIKE работает в SQL?
Предложение LIKE — это логический оператор, который заключает, что строка символов соответствует указанному шаблону. Обычные и подстановочные знаки были включены в сопоставление с образцом. В SQL Server оператор LIKE, специально используемый в предложении WHERE, включает операторы SELECT, DELETE и UPDATE для извлечения данных на основе сопоставления шаблонов по строкам.
Примеры
1. SQL SERVER LIKE
Давайте посмотрим на образец базы данных Customer_Master,
2. (Процент) % Подстановочный знак
Подстановочный знак процента определяет строку из нуля или более символов. Давайте посмотрим на примеры
Используя подстановочный знак процента, чтобы найти или получить клиентов, чье имя начинается с буквы Z,
Выберите Customer_Id, Customer_First Name, customer_Last Name
From Customer_Master
Где Customer_First Name Как 'z%'
Заказ по имени Customer_First;
Используя подстановочный знак процента, чтобы узнать или получить клиентов, чья фамилия заканчивается на букву,
Выберите Customer_Id, Customer_First Name, customer_Last Name
From Customer_Master
Где Customer_Last Name Like '%er'
Заказ по Customer_First Name;
Чтобы найти или получить клиентов, чья фамилия начинается с буквы t и заканчивается буквой s,
Выберите Customer_Id, Customer_First Name, customer_Last Name
From Customer_Master
Где Customer_Last Name Like 't%s'
Заказ по имени Customer_First;
3.
(Подчеркивание) _ Подстановочный знакПодчеркивание определяет один символ. Давайте посмотрим на примеры ниже:
Используя подстановочный знак подчеркивания для получения клиентов, где вторым символом является буква u, шаблон _u% объясняет, что первый символ подчеркивания соответствует одному символу, а вторая буква u точно соответствует буква u и третий символ % обозначают последовательность символов.
Выберите Customer_Id, Customer_First Name,customer_Last Name
From Customer_Master
Где Customer_Last Name Как '_U%'
Заказ по Customer_First Name;
4. [Список символов] Подстановочный знак
Список символов указывает, что один символ в определенном наборе, квадратные скобки со списком символов, например [ABC] указывает символ, в котором один из символы, встречающиеся в списке. Давайте посмотрим на пример, оператор возвращает клиентов, где начальная буква фамилии клиента начинается с Y или Z,
Выберите Customer_Id, Customer_First Name, customer_Last Name
From Customer_Master
Где Customer_Last Name Like '[YZ]%'
Заказ по Customer_Last Name;
5.
[Символ-Символ] Подстановочный знакПодстановочный знак между символами определяет символ в указанном диапазоне. Он извлекает диапазон символов, указанный только в квадратных скобках, например [A-C], который отображает символ, указанный в диапазоне.
9A-X]%’Заказ по фамилии клиента;
7. Оператор НЕ НРАВИТСЯ
Оператор НЕ НРАВИТСЯ возвращает результат, который не является символом, например, для получения записи клиентов, где имя клиента не должно начинаться с буквы А ,
Выберите Customer_Id, Customer_First Name, customer_Last Name
From Customer_Master
Где Customer_First Name не похож на 'A%'
Заказ по Customer_First Name;
Преимущества и характеристики
- Предложение LIKE полезно для получения записи, соответствующей определенному шаблону.
- Используйте подстановочный знак «%», чтобы узнать полное значение.
- Подстановочный знак процента (%) извлекает строку, состоящую из нуля или более символов.
- Подстановочный знак подчеркивания (_) извлекает любое количество одиночных символов.
- Подстановочный знак [список символов] извлекает в указанном наборе любой одиночный символ. 9Список символов или диапазон] подстановочный знак извлекает символ, который не находится в списке символов или в пределах диапазона.
Условие
- Условие SQL LIKE позволяет применять подстановочные знаки для выполнения операторов сопоставления с образцом. Условие LIKE применяется в предложении WHERE операторов INSERT, DELETE, UPDATE или SELECT.
- Условие НРАВИТСЯ возвращает результат как ИСТИНА, если столбец соответствует определенному шаблону.
- Чтобы изменить результат условия LIKE, используйте оператор NOT.
Рекомендуемые статьи
Это руководство по оператору SQL LIKE. Здесь мы обсудим, что такое предложение SQL LIKE, преимущества и характеристики предложения SQL LIKE, а также примеры. Вы также можете просмотреть другие наши рекомендуемые статьи, чтобы узнать больше.
- Таблица в SQL
- Типы соединений в SQL
- Отдельное ключевое слово в SQL
- База данных в SQL
Как найти шаблоны с помощью SQL LIKE
Люди, часто работающие с данными, обнаруживают, что им часто приходится запрашивать определенные типы. SQL предоставляет нам множество инструментов для достижения этой цели. Эти инструменты, такие как SQL LIKE, помогают нам рассматривать определенные типы данных, а не всю базу данных. Это сокращает время и усилия, затрачиваемые на выполнение той или иной задачи, и дает людям возможность работать более эффективно.
В этой статье SQL LIKE вы узнаете, как запрашивать данные для поиска определенных шаблонов.
Что такое SQL?
Оператор LIKE используется для поиска определенных символов в столбцах таблицы. Он также используется для сравнения столбцов с указанными значениями.
Вместе с предложением WHERE он определяет, соответствует ли шаблон определенным значениям в таблице.
Давайте рассмотрим синтаксис этого оператора.
Синтаксис для использования SQL LIKE
Оператор SQL LIKE обычно используется с командой SELECT. Синтаксис этого следующий:
ВЫБРАТЬ столбец_1, столбец_2,… столбец_n ОТ имя_таблицы ГДЕ столбец_1 НРАВИТСЯ [шаблон]; |
- Столбцы для отображения в таблице результатов указываются после оператора SELECT
- Таблица указана в параметре table_name оператора FROM
- Столбец, предназначенный для сопоставления с образцом, указан в предложении WHERE
- Шаблон формируется из определенного выбора строки, который определен в параметре [pattern] оператора LIKE
ПРИМЕЧАНИЕ. Оператор LIKE нечувствителен к регистру.
С помощью этого оператора можно указать несколько шаблонов, используя ключевые слова «И» или «ИЛИ».
Подстановочные знаки являются наиболее важными инструментами этого оператора, поэтому давайте рассмотрим, что это такое и как они используются с LIKE.
символов подстановки, используемых с LIKE
Подстановочные знаки — это специальные символы и символы, используемые для представления одного или нескольких символов в строке. Они обязательны для оператора LIKE, так как позволяют указывать шаблоны.
Два подстановочных знака, используемые с оператором LIKE, следующие:
- % (знак процента) — используется для представления нуля или более символов.
- _ (подчеркивание) — каждое подчеркивание представляет ровно один символ.
Чтобы получить более четкое представление об этих подстановочных знаках, давайте рассмотрим несколько примеров их использования в операторах.
Важно заключать все шаблоны в одинарные кавычки; в противном случае запрос вернет синтаксическую ошибку.
Заявление | Описание |
ГДЕ имя_столбца КАК ‘a%’ | Возвращает любые значения, начинающиеся с «а» |
ГДЕ имя_столбца КАК ‘%sh’ | Возвращает любые значения, оканчивающиеся на «ш». |
ГДЕ имя_столбца НРАВИТСЯ %a% | Возвращает любые значения, содержащие букву . |
ГДЕ имя_столбца НРАВИТСЯ ‘_’ | Возвращает любые значения, содержащие только один символ |
ГДЕ имя_столбца НРАВИТСЯ ‘__a%’ | Возвращает любые значения, которые содержат «а» в качестве третьего символа |
ГДЕ имя_столбца КАК ‘b%n’ | Возвращает любые значения, начинающиеся с «b» и заканчивающиеся на «n». |
ГДЕ имя_столбца НРАВИТСЯ ‘_%__a’ | Возвращает значения, содержащие не менее трех символов и заканчивающиеся на «а». |
ГДЕ имя_столбца НРАВИТСЯ ‘a___c | Возвращает значения, начинающиеся с «а» и заканчивающиеся на «с», и содержащие пять символов |
Чтобы получить более глубокое представление о том, как использовать SQL LIKE, давайте запросим таблицу.
Использование LIKE в столбцах таблицы
Возьмем образец из следующей таблицы:
- Из этой таблицы, если вы хотите узнать «EmployeeID» всех сотрудников, чьи имена начинаются с буквы «А», вы должны использовать следующий запрос:
Вы также можете использовать «a» вместо «A», потому что оператор LIKE не чувствителен к регистру.
Приведенный выше запрос приведет к следующей таблице:
- Чтобы определить, название города сотрудника начинается с «b» и заканчивается на «e», вам необходимо ввести следующий код:
В результате получится следующая таблица:
Это показывает, что возвращаемые города содержат указанный шаблон. Чтобы увидеть, какие города содержат только два символа, введите следующий код, в котором используются два знака подчеркивания, заключенные в кавычки:
Приведенный выше запрос возвращает следующую таблицу:
Это показывает, что таблица содержит только две записи, тогда как атрибут города содержит только два символа.
- Оператор LIKE можно использовать с любым типом данных
Следующий код поможет пользователю найти все записи, содержащие двузначные идентификаторы сотрудников:
Это приведет к следующему:
Это показывает, что таблица «Сотрудник» содержит только одну запись с двузначным идентификатором сотрудника.
Следующий код используется для целевых сотрудников с окладами от 50000 до 59000:
В этом запросе использовалось десятичное число и два знака подчеркивания после десятичного числа. Это связано с тем, что оклады являются одним из десятичных типов данных, наряду с двумя цифрами после запятой, и шаблон должен напоминать это представление в таблице.
Приведенный выше запрос вернет следующую таблицу:
- Вы также можете использовать ключевое слово «НЕ» перед LIKE, чтобы выбрать все записи, которые не соответствуют указанному шаблону
Например, если вы хотите найти все записи, соответствующие сотрудникам, чьи имена начинаются со всех остальных букв, кроме «А», введите следующее:
В результате получится следующая таблица:
В результатах отображаются все записи, не начинающиеся с буквы «А».
- Вы также можете использовать ключевые слова «И» или «ИЛИ», чтобы указать более одного шаблона в одном запросе
Например, чтобы узнать, имена каких сотрудников начинаются с «А» или «Н», введите следующее:
В результате получится следующая таблица:
Все записи, отображаемые в результатах, соответствуют спецификациям шаблона из исходного запроса. Также обязательно нужно заключить шаблон в одинарные кавычки.