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