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

相關文章
相關標籤/搜索