ORACLE 10G中的支持正则表达式的函数主要有下面四个:
1 , REGEXP_LIKE :与 LIKE 的功能相似
2 , REGEXP_INSTR :与 INSTR 的功能相似
3 , REGEXP_SUBSTR :与 SUBSTR 的功能相似
4 , REGEXP_REPLACE :与 REPLACE 的功能相似
用了一下 REGEXP_LIKE,虽然是一个很简单的正则,但还是比like略慢一点.这个当然要视情况了,影响的因素也有很多.如果在like不好做的时候可以考虑用正则来做.不过肯定得测试一下性能.比如对于 like '%abc%'时,查询是不会走索引的,当然可以考虑用正则,如果是 like'abc%' 会走索引,当然具体还要看数据集了.不确定正则是否也走索引,有些情况也不是不能走的,比如 '^abc/w+',理论上应该是跟like 'abc%' 一个道理.因为是以abc为开头的,相当于左边没有通配符.还是坚持认为,除非 like没法做,最好慎用正则,多数情况是全表扫描.