PostgreSQL условие LIKE

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

Описание

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

Синтаксис

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

expression LIKE pattern [ ESCAPE 'escape_character' ]

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

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

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

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

Первый пример PostgreSQL LIKE, который мы рассмотрим, включает использование подстановочного символа % (символ знак процента).
Давайте разберем, как подстановочный символ % работает в PostgreSQL условии LIKE. Мы хотим найти всех employees, last_name начинается с 'Jo'.

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

В этом PostgreSQL примере условия LIKE мы ищем всех employees, чье first_name содержит символы 'od'.

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

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

Этот пример PostgreSQL условия LIKE вернул бы всех suppliers, чье supplier_name имеет длину 5 символов, где первые три символа - «Yoh», а последний - «n». Например, он может возвращать записи таблицы employees, у которых first_name - «Yohan», «Yohen», «Yohin», «Yohon» и т.д.

Вот еще один пример:

Вы можете обнаружить, что ищете номер счета, но у вас есть только 5 из 6 цифр. В приведенном выше примере можно было бы получить обратно 10 записей (где отсутствующее значение может быть равно 0–9). Например, он может вернуть записи таблицы employees с employee_number:
987650, 987651, 987652, 987653, 987654, 987655, 987656, 987657, 987658, 987659

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

Теперь давайте посмотрим, как вы можете использовать оператор NOT с подстановочными символами.
Давайте использовать подстановочный символ % с оператором NOT. Вы также можете использовать PostgreSQL условие LIKE, чтобы найти записи таблицы employees, чье last_name не начинается с 'J'.
Например:

Поместив оператор NOT перед PostgreSQL условием LIKE, вы сможете получить все записи employees, чье last_name не начинается с 'J'.

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

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

Поскольку мы не указали escape-символ, PostgreSQL предполагает, что \ это escape-символ. Затем PostgreSQL предполагает, что escape-символ является \ в результате PostgreSQL рассматривает символ % как литерал вместо подстановочного символа. Этот оператор затем возвращает все записи из employees, чье last_name равно G%.
Мы можем переопределить escape-символ по умолчанию в PostgreSQL, предоставив модификатор ESCAPE следующим образом:

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

Этот пример PostgreSQL условия LIKE возвращает всех employees, чье last_name начинается с 'M' и заканчивается на '%'. Например, он вернул бы значение, такое как «Mathison%». Поскольку в условии LIKE мы не указывали escape-символ, PostgreSQL предполагает, что escape-символ является \ что приводит к тому, что PostgreSQL рассматривает второй символ % как литерал вместо подстановочного символа.
Мы могли бы изменить это условие LIKE, указав escape-символ следующим образом:

Этот пример PostgreSQL условия LIKE возвращает все записи из employees, чье last_name начинается с 'M' и заканчивается литеральным '%'. Например, он будет возвращать значение, такое как «Mathison%».
Вы также можете использовать escape-символ с символом _ в условии PostgreSQL LIKE.
Например:

Опять же, поскольку модификатор ESCAPE не предоставлен, PostgreSQL использует \ как escape-символ, приводящий к символу _, который будет трактоваться как литерал вместо подстановочного символа. В этом примере будут возвращаться все поля из employees, чье last_name начинается с 'M' и заканчивается на '_'. Например, он вернул бы значение, такое как 'Mathison_'.