MariaDB условие LIKE

В этом учебном пособии вы узнаете, как использовать MariaDB условие LIKE для сопоставления с pattern c синтаксисом и примерами.

Описание

MariaDB условие LIKE позволяет использовать подстановочные символы в предложении WHERE оператора SELECT, INSERT, UPDATE или DELETE. Это позволяет выполнять сопоставление с pattern.

Синтаксис

Синтаксис условия LIKE в MariaDB:

expression LIKE pattern [ ESCAPE 'escape_character' ]

Параметры или аргументы

expression
Символьное выражение, такое как столбец или поле.
pattern
Символьное выражение, которое содержит сопоставляемый шаблон. Шаблоны, которые вы можете выбрать из:

Подстановочный символ Пояснение
% Соответствует любой строке любой длины (в том числе нулевой длины)
_ Позволяет сопоставить один символ.
escape_character
Необязательный. Это позволяет вам проверять наличие литеральных символов, таких как % или _. Если вы не предоставите escape_character, то MariaDB предполагает, что \ является escape_character.

Пример - использование подстановочного символа % (символ знак процента)

Первый пример MariaDB LIKE, который мы рассмотрим, включает использование символа подстановки %.
Давайте объясним, как подстановочный символ % работает в MariaDB условии LIKE. Мы хотим найти все записи таблицы sites, где site_name начинается на 'Ya'.

Приведенный выше пример вернет в результирующем наборе сайты 'Yahoo.com' и 'Yandex.ru'.

Вы также можете использовать подстановочный символ % несколько раз в одной строке. Например,

В этом примере условия LIKE мы ищем все sites, чье site_name содержит символы 'oo'. Запрос вернет записи таблицы sites у которых значения site_name будут 'Yahoo.com' и 'Google.com'.

Пример - использование подстановочного символа _ (символ подчеркивания)

Далее давайте объясним, как подстановочного символ _ (символ подчеркивания) работает в MariaDB условии LIKE. Помните, что подстановочный символ _ ищет только однин символ.
Например:

В этом примере условия LIKE будут возвращаться все записи sites, у которых category длиной 4 символа, где первые два символа - это 'Cr', а последний символ - может быть 'm'. Например, запрос может возвращать записи, для которых category - "Crom", "Crem", "Cram", "Crim" и т.д.

Пример - использование оператора NOT

Далее давайте посмотрим, как вы можете использовать оператор NOT с подстановочными символами в MariaDB.
Давайте использовать % с оператором NOT. Вы также можете использовать условие LIKE для поиска сайтов, у которых site_name не начинается с "Best".
Например:

Поместив оператор NOT перед условием LIKE, вы сможете получить все сайты, у которых site_name не начинается с "Best".

Пример - использование Escape-символов

Важно понимать, как "экранировать символы" когда pattern соответствует. Эти примеры имеют дело с Escape-символами в MariaDB.
Допустим, вы хотели найти символ % или _ в условии LIKE. Вы можете сделать это с помощью Escape-символа.
Обратите внимание, что вы можете определить только escape-символ как один символ (длина 1)
Например:

Поскольку мы не указали escape-символ, MariaDB предполагает, что \это escape-символ. Затем MariaDB предполагает, что экранирующий символ \что приводит к тому, что MariaDB рассматривает второй символ % как литерал вместо подстановочного символа. Затем этот оператор возвращает все sites, у которых password заканчивается символом % в качестве литерала.
Мы можем переопределить escape-символ по умолчанию в MariaDB, предоставив модификатор ESCAPE следующим образом:

Этот пример MariaDB условия LIKE определяет символ ! как escape символ. Escape-символ ! приведет к тому, что MariaDB будет рассматривать символ '%' как литерал. В результате этот оператор также вернет все запсии из таблицы sites, у которых password заканчивается символом '%'.
Вот еще один более сложный пример использования escape-символов в MariaDB условии LIKE.

Этот пример MariaDB условия LIKE возвращает все строки таблицы sites, чей password начинается с 'p' и заканчивается символом '%'. Например, он вернул бы значение, такое как 'Programming%'. Поскольку мы не указали escape-символ в условии LIKE, MariaDB предполагает, что escape-символ \ что приводит к тому, что MariaDB рассматривает второй символ '%' как литерал вместо подстановочного символа.
Мы могли бы изменить это условие LIKE, указав escape-символ следующим образом:

Этот пример MariaDB условия LIKE возвращает все строки таблицы sites, у которых password начинается с 'P' и заканчивается литералом '%'. Например, он вернул бы значение, такое как "Programming%".
Вы также можете использовать escape-символ с символом _ в условии MariaDB LIKE.
Например:

Опять же, поскольку не предоставлен модификатор ESCAPE, MariaDB использует \ как escape-символ, приводящий к символу '_', который будет трактоваться как литерал вместо подстановочного символа. В этом примере будут возвращены все строки таблицы sites, чей password начинается с 'P' и заканчивается на '_'. Например, он будет возвращать значение, такое как "Programming_".