Оператор SIMILAR TO

Описание

Выражение с оператором SIMILAR TO возвращает TRUE или FALSE в зависимости от того, накладывается ли его шаблон на данную текстовую строку.

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

В регулярных выражениях используется синтаксис RE2.

Можно также использовать противоположные по значению выражения
<string> NOT SIMILAR TO <pattern> и NOT string SIMILAR TO <pattern>

Выражения с оператором SIMILAR TO полностью синонимичны выражениям с оператором ~.

Примеры

SELECT
    'Tengri' SIMILAR TO 'TNGRi'  AS result_1, -- false expected
    'Tengri' SIMILAR TO 'T.*'    AS result_2,
    'Tengri' SIMILAR TO 'T.+i'   AS result_3,
    'TNGRi'  SIMILAR TO 'T.+i'   AS result_4,
    'T.+i'   SIMILAR TO 'T\.\+i' AS result_5;
+----------+----------+----------+----------+----------+
| result_1 | result_2 | result_3 | result_4 | result_5 |
+----------+----------+----------+----------+----------+
| false    | true     | true     | true     | true     |
+----------+----------+----------+----------+----------+
SELECT
    'Tengri' NOT SIMILAR TO 'TNGRi'  AS result_1,
    NOT 'T.{3}i' SIMILAR TO 'T.{3}i' AS result_2;
+----------+----------+
| result_1 | result_2 |
+----------+----------+
| true     | true     |
+----------+----------+