PostgreSql. Поиск по шаблону (LIKE, SIMILAR TO, регулярные выражения)

Рассмотрим более подробно возможности PostgreSql, в части поиска данных по шаблону. А именно поиск, с помощью стандартного оператора LIKE, более современного SIMILAR TO (был добавлен в SQL:1999 и поддерживается всеми современными СУБД), и с помощью регулярных выражений.

Все они возвращают булевое значение (TRUE или FALSE).

Самый простой вариант, это использовать оператор LIKE.

Например:

Можно также, воспользоваться регистр-независимым поиском с помощью оператора ILIKE.

Если вам, недостаточно возможностей оператора LIKE, то можно использовать SIMILAR TO. Он расширяет возможности LIKE, с помощью некоторых операторов регулярных выражений.

  • | означает выбор (одного из двух вариантов).
  • * означает повторение предыдущего элемента 0 и более раз.
  • + означает повторение предыдущего элемента 1 и более раз.
  • ? означает вхождение предыдущего элемента 0 или 1 раз.
  • {m} означает повторяет предыдущего элемента ровно m раз.
  • {m,} означает повторение предыдущего элемента m или более раз.
  • {m,n} означает повторение предыдущего элемента не менее чем m и не более чем n раз.
  • Скобки () объединяют несколько элементов в одну логическую группу.
  • Квадратные скобки [...] обозначают класс символов так же, как и в регулярных выражениях POSIX.

Пример операторов SIMILAR TO и NOT SIMILAR TO:

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

Оператор Описание
~ Проверяет соответствие регулярному выражению с учётом регистра
!~ Проверяет несоответствие регулярному выражению с учётом регистра
~* Проверяет соответствие регулярному выражению без учёта регистра
!~* Проверяет несоответствие регулярному выражению без учёта регистра

Пример запросов, построенных с помощью регулярных выражений:

Если вам помогла статья, пожалуйста перейдите по одному из рекламных блоков, расположенных на сайте. Таким образом вы поддержите проект. Спасибо

© Krenar 2020. All right reserved.