MySQL Учебное пособие по подстановочным знакам: Нравится, НЕ Нравится, Escape, ( % ), ( _ )

Каковы MySQL Подстановочные знаки?

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

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

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

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

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

SELECT * FROM members WHERE postal_address = 'Austin , TX' OR  postal_address = Dallas , TX OR postal_address = Iola,TX OR postal_adress = Houston ,TX';

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

SELECT * FROM  members  WHERE postal_address  like '% TX';

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

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

% процент

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

SELECT statements... WHERE fieldname LIKE 'xxx%';

ВОТ

  • Оператор SELECT…» — это стандартная команда SQL SELECT.
  • «ГДЕ» — ключевое слово, используемое для применения фильтра.
  • «LIKE» — это оператор сравнения, который используется в сочетании с подстановочными знаками.
  • «xxx» — это любой указанный начальный шаблон, например один или несколько символов, а «%» соответствует любому количеству символов, начиная с нуля (0).

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

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

SELECT * FROM movies WHERE title LIKE '%code%';

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

movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL
7 Davinci Code NULL NULL 6

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

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

SELECT * FROM movies WHERE title LIKE '%code';

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

movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

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

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

SELECT * FROM movies WHERE title LIKE 'code%';
Выполнение приведенного выше сценария в MySQL рабочая среда против myflixdb дает нам результаты, показанные ниже.
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

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

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

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

SELECT * FROM movies WHERE year_released LIKE '200_';

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

movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
9 Honey mooners Jhon Shultz 2005 8

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

Не как

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

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

SELECT * FROM movies WHERE year_released NOT LIKE '200_';

movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
4 Code Name Black Edgar Jimz 2010 NULL
8 Underworld-Awakeninh Michahel Eal 2012 6

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

Ключевое слово Escape

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

Давайте предположим, что мы хотим проверить строку «67%», которую мы можем использовать;

LIKE '67#%%' ESCAPE '#';

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

SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';

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

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

SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';

Итого

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