为什么大多数人使用regexp与substr,instr,比如..而不使用没有regexp的thoes函数?

时间:2018-02-10 21:25:00

标签: sql oracle

使用REGEXP_SUBSTR的好处是什么,而不仅仅是SUBSTR,或REGEXP_LIKE而不是LIKE等等。

例如:

SELECT lastname 
FROM address
WHERE REGEXP_LIKE (phone, '415+');

VS

SELECT lastname 
FROM address
WHERE phone LIKE '415%' ;

是否存在REGEXP更有益的不同情况?我最近开始学习这个材料,但到目前为止只学习了substr,instr,就像......没有使用REGEXP,但是已经看到大多数人使用REGEXP。

1 个答案:

答案 0 :(得分:1)

通常like更快且ANSI标准SQL。

通常regexp_like()更强大,并非所有数据库都支持正则表达式(更不用说regexp_like())。

顺便说一句,你的两个条件并不相同。如果您希望电话号码以415开头,则正则表达式为:

WHERE REGEXP_LIKE(phone, '^415');

您的版本会匹配phone中任何位置有415的数字,而不仅仅是在开头。 +没有做任何事情。