Разница между SIMILAR TO и REGEXP в PostgreSQL заключается в том, что каждый из этих операторов выполняет разные задачи:
- SIMILAR TO возвращает true или false в зависимости от того, соответствует ли данная строка шаблону или нет. 12 Он работает подобно оператору LIKE, только его шаблоны соответствуют определению регулярных выражений в стандарте SQL. 1 Условие SIMILAR TO истинно, только если шаблон соответствует всей строке. 1
- REGEXP (REGEXP) — это ещё один способ сопоставления с несколькими шаблонами. 3 Он основан на мощных инструментах поиска UNIX grep. 3 В отличие от шаблонов LIKE, регулярное выражение может совпадать с любой частью строки, если только оно не привязано явно к началу и/или концу строки. 1
Таким образом, SIMILAR TO позволяет сопоставлять с несколькими шаблонами и делать запрос простым, а REGEXP предоставляет более мощные средства поиска по шаблонам, так как регулярное выражение может соответствовать любой части строки. 13