Иллюстрированный самоучитель по PostgreSQL

Строковые функции

like() и ilike()

Синтаксис:

s like (f) s LIKE f like(s.f) s ilike(f) s LIKE f

Функция like() проверяет, совпадает ли выражение, заданное аргументом f, со строкой s. При вызове функции либо передаются два аргумента типа text, либо используется специальный синтаксис SQL, в котором аргумент s предшествует имени функции. Функция ilike() является нестандартной версией функции like(), игнорирующей регистр символов при сравнении, и вызывается только в синтаксисе SQL.

Примечание
Ключевое слово SQL LIKE в PostgreSQL заменяется вызовом функции like(). Возможность использования ключевого слова LIKE без круглых скобок – всего лишь синтаксическое удобство, на практике оба варианта эквивалентны
.

Использование функции like() отличается от обычного сравнения с помощью оператора =, поскольку строка f может содержать символы подчеркивания (_) или процента (%), интерпретируемые особым образом. PostgreSQL интерпретирует символ _ как один произвольный символ, а символ % – как ноль или более произвольных символов. Эти специальные символы могут находиться в любом месте строки f.

В PostgreSQL существуют и более совершенные средства поиска по шаблону, о которых говорилось в пункте "Операторы регулярных выражений" подраздела "Строковые операторы" раздела "Операторы" этой главы.

Примеры:

booktown=# SELECT * FROM books
booktown-# WHERE title LIKE ('XRabbit1):
id i title | authorjd subjectjd
1234 | The Velveteen Rabbit | 25041 | 3
(1 row)

booktown=# SELECT * FROM books
booktown-# WHERE title LIKE
id | title | authorjd | subjectjd
4513 | Dune | 1866 | 15
25908 | Franklin in the Dark | 15990 | 2 (2 rows)
booktown=# SELECT * FROM books
booktown-# WHERE title ILIKE '"python*':
id | title | authorjd | subjectjd
41473 | Programming Python | 7805 | 4 41477
Learning Python | 7805 4
(2 rows)

lower()

Синтаксис:

lower(s)

Функция SQL92 lower () получает один аргумент типа text, преобразует все символы строки к нижнему регистру и возвращает полученную строку в виде значения типа text.

Пример:

booktown=# SELECT lower(title)
booktown-# FROM books
booktown-# LIMIT 3;
lower
tne shining
dune
2001: a space odyssey
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.