本文介绍REGEXP_LIKE函数的使用场景。
背景说明
Oracle支持REGEXP_LIKE函数,但是PolarDB O引擎不支持该函数。
在Oracle中具体使用如下:
SQL> SELECT * FROM xmldemo WHERE REGEXP_LIKE (B, '^f([a-z]+)e$');
A B
---------- --------------------
20 firstline
解决方案
使用POSIX正则表达式进行改写
,similar to
和‘~’
可以支持正则表达式匹配。van=> SELECT * FROM xmldemo WHERE b SIMILAR to 'f([a-z]+)e';
a | b
----+-----------
20 | firstline
(1 row)
或者
van=> SELECT * FROM xmldemo WHERE b ~ 'f([a-z]+)e';
a | b
----+-----------
20 | firstline
(1 row)
详情请参见https://www.postgresql.org/docs/11/functions-matching.html#FUNCTIONS-POSIX-REGEXP