oracle like 和instr的差别

来源:百度知道 编辑:UC知道 时间:2024/05/18 02:08:29
模糊查询的时候like 和instr的效率问题。
select a from b where a like'%1%';
select a from b where instr(a,'1');
这两条语句的效果一样不,两位仁兄,我想知道那个更好点。

instr不属于模糊查询。
不知道你怎么会问这样的问题。
从效率角度来看:
谁能用到索引,谁的查询速度就会快。
like有时可以用到索引,例如:name like '李%'
而当下面的情况时索引会失效:name like '%李'
与其他数据库不同的是,oracle支持函数索引。例如在name字段上建个instr索引。查询速度就比较快了。

这两个的功能是不一样的,instr是内置的SQL函数,他的主要功能是返回字符1中包含字符2的位置,而like是sql中的运算符,主要进行模糊匹配的查询