Учебник MySQL Wildcards: Like, NOT Like, Escape, (%), (_)

Что такое подстановочные знаки?

Подстановочные знаки – это символы, которые помогают искать данные, соответствующие сложным критериям. Подстановочные знаки используются в сочетании с оператором сравнения LIKE или оператором сравнения NOT LIKE.

Зачем использовать WildCards?

Если вы знакомы с использованием SQL, вы можете подумать, что вы можете искать любые сложные данные, используя предложение SEELCT и WHERE. Тогда зачем использовать подстановочные знаки?

Прежде чем ответить на этот вопрос, давайте посмотрим на пример. Предположим, что отдел маркетинга библиотеки видео Myflix провел маркетинговые акции в городе Техасе и хотел бы получить некоторые отзывы о количестве участников

который зарегистрирован в Техасе, вы можете использовать следующую инструкцию SELECT вместе с предложением WHERE, чтобы получить нужную информацию.

Как видно из приведенного выше запроса, “предложение WHERE” становится сложным. Однако использование подстановочных знаков упрощает запрос, поскольку мы можем использовать что-то простое, как показано ниже.

Короче говоря, подстановочные знаки позволяют нам разрабатывать силовые поисковые системы в наших приложениях, управляемых данными.

Типы подстановочных знаков

% процент

% процентный символ используется для указания шаблона нулевого (0) или более символов . Он имеет следующий базовый синтаксис.

ВОТ

  • “SELECT statement …” – это стандартная команда SQL SELECT.
  • “WHERE” – это ключевое слово, используемое для применения фильтра.
  • “LIKE” – это оператор сравнения, который используется совместно с подстановочными знаками
  •  ”xxx” – это любой заданный стартовый шаблон, такой как один символ или больше, а “%” соответствует любому числу символов, начинающихся с нуля (0).

Чтобы в полной мере оценить сказанное выше, давайте рассмотрим практический пример

Предположим, что мы хотим получить все фильмы, в которых есть слово “код”, как часть названия, мы будем использовать групповой символ процента для выполнения соответствия шаблону по обе стороны слова “код”. Ниже приведен оператор SQL, который можно использовать для достижения желаемых результатов.

Выполнение приведенного выше сценария в workbench MySQL на myflixdb дает нам результаты, показанные ниже.

movie_id заглавие директор year_released category_id
4 Название кода Black Эдгар Джимц 2010 НОЛЬ
7 Давинский код НОЛЬ НОЛЬ 6

Обратите внимание, что даже если ключевое слово поиска “код” появляется в начале или в конце заголовка, оно все равно возвращается в нашем результирующем наборе. Это связано с тем, что наш код включает в себя любое количество символов в начале, затем соответствует шаблону “код”, за которым следует любое количество символов в конце.

Давайте теперь изменим наш вышеприведенный скрипт, чтобы включить шаблон процента в начале только для критериев поиска.

Выполнение приведенного выше сценария в workbench MySQL на myflixdb дает нам результаты, показанные ниже.

movie_id заглавие директор year_released category_id
7 Давинский код НОЛЬ НОЛЬ 6

 

Обратите внимание, что из базы данных была возвращена только одна запись. Это связано с тем, что наш код соответствует любому количеству символов в начале названия фильма и получает только записи, которые заканчиваются шаблоном “код”.

Давайте теперь переместим групповой символ процента до конца указанного шаблона, который будет сопоставлен. Измененный скрипт показан ниже.

Выполнение приведенного выше сценария в workbench MySQL на myflixdb дает нам результаты, показанные ниже.

movie_id заглавие директор year_released category_id
4 Название кода Black Эдгар Джимц 2010 НОЛЬ

 

Обратите внимание, что только одна запись была возвращена из базы данных. Это связано с тем, что наш код соответствует всем заголовкам, начинающимся с шаблона “код”, за которым следует любое количество символов.

_ подстановочный знак подчеркивания

Подстановочный знак подчеркивания используется для соответствия ровно одному символу . Предположим, что мы хотим искать все фильмы, выпущенные в годах 200x, где x – это ровно один символ, который может быть любым значением. Для достижения этой цели мы будем использовать подчёркнутую дикую карту. В приведенном ниже сценарии выберите все фильмы, выпущенные в году “200x”,

Выполнение приведенного выше сценария в workbench MySQL на myflixdb дает нам результаты, показанные ниже.

movie_id заглавие директор year_released category_id
2 Забыть Сарра Маршала Николас Столлер 2008 2
9 Медовые луны Джхон Шульц 2005 8

Обратите внимание, что в нашем результирующем наборе были возвращены только те фильмы, у которых есть 200, следующий за любым символом в выпущенном году. Это связано с тем, что подстановочный знак подчеркивания соответствует шаблону 200, за которым следует любой отдельный символ

Не как

Логический оператор NOT может использоваться вместе с подстановочными знаками для возврата строк, которые не соответствуют указанному шаблону.

Предположим, мы хотим получить фильмы, которые не были выпущены в год 200x. Мы будем использовать логический оператор NOT вместе с подстановочным знаком подчеркивания, чтобы получить наши результаты. Ниже приведен скрипт.

movie_id заглавие директор year_released category_id
1 Пираты Карибского моря 4 Роб Маршалл 2011 1
4 Название кода Black Эдгар Джимц 2010 НОЛЬ
8 Underworld-Awakeninh Michahel Eal 2012 6

Обратите внимание, что в нашем результирующем наборе были возвращены только фильмы, которые не начинаются с 200 в год выпуска. Это связано с тем, что мы использовали логический оператор NOT в нашем шаблоне поиска шаблонов.

Ключевые слова Escape.

Ключевое слово ESCAPE используется для исключения совпадающих символов, таких как процент (%) и подчеркивание (_), если они составляют часть данных.

Предположим, что мы хотим проверить строку “67%”, которую мы можем использовать;

Если мы хотим найти фильм “67% Guilty”, мы можем использовать сценарий, показанный ниже, для этого.

Обратите внимание на двойной “ %% ” в предложении LIKE, первый в красном “ % ” рассматривается как часть строки для поиска. Другой используется для соответствия любому количеству символов, которые следуют.

Тот же запрос будет работать, если мы будем использовать что-то вроде

Резюме

  • Like & Wildcards – мощные инструменты, которые помогают искать данные, соответствующие сложным шаблонам.
  • Существует множество подстановочных знаков, которые включают в себя процент, подчеркивание и charlist (не поддерживаемые MySQL) среди других
  • Подстановочный шаблон процента используется для соответствия любому числу символов, начинающихся с нуля (0) и более.
  • Подстановочный знак подчеркивания используется для соответствия ровно одному символу.
0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *