oracle模糊搜索避免使用like,替换为instr()

oracle中instr()函数用法oracle

 

instr(name,'张三')>0  至关于  name like '%张三%'
instr(name,'张三')=1  至关于  name like '张三%'
instr(name,'张三')=0  至关于  name not like '%张三%'

 

 

 

 

 

 

实验得出,在一个2亿多条记录的表中,同时8个并行,使用like查询好久都不出来结果,但使用instr,4分钟即完成查找,性能是至关的好。由此可得,ORACLE内建的一些函数,是通过至关程度的优化的。函数

 

同时总结一个特殊用法:性能

select  t.*  from book  t where instr('12076, 12077', id) > 0; 
  它等价于 
select  t.*  from book  t where id = 12076 or id = 12077;优化

针对oracle中的number类型数据可能为null,查询时使用以下方式:spa

select  nvl(t.total,0) total from book tci

nvl()函数能够设置查询值为null是赋予默认值。table

相关文章
相关标签/搜索