Оператор 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 |
+----------+----------+