Oracle中那些like不能实现的,正则表达式:
1、不区分大小写匹配:( REGEXP_LIKE)
'i':不区分大小写
'c':区分大小写
'n':将换行符与“n”句点 (.) 匹配
'm':将搜索目标视为多行,并将“^”和“$”匹配到每行的开头和结尾
传统like:(message_val字段)
WHERE LOWER(message_val) LIKE '%need%';
优化:
WHERE REGEXP_LIKE(message_val, 'need', 'i');
2、包含或的关系
包含 am 或 NeeD 的数据(or的用法)
REGEXP_LIKE(message_val, 'am|NeeD');
3、并且都有的用法
AND 条件 ("really" 和 "you" 都包含的)
REGEXP_LIKE(message_val, '(really)|(you)');
4、以某个字符串开头用法
-- 以 "a" 开头,中间有 "you" 的字符串。
-- "^" 字符串首位
-- ".*" 任意字符串
REGEXP_LIKE(message_val, '^a.*you.*');
5、以某个字符串结尾的用法:
-- 以 "a" 开头、以 "money" 结尾的字符串
-- "^" :字符串首位
-- "$" :字符串末尾
REGEXP_LIKE(message_val, '^a.*money$')