Oracle中替換like的方法

2021-09-30 15:36:03 字數 767 閱讀 4805

資料庫中儲存了海量的資料,當查詢時使用like,速度明顯變慢。我在做專案時,發現可以使用instr函式來取代like的作用。

1.%a%方式:

select * from pub_yh_bm t

where instr(t.chr_bmdm,'2')>0

等份於:

select * from pub_yh_bm t

where t.chr_bmdm like '%2%'

2.%a方式:

select * from pub_yh_bm t

where instr(t.chr_bmdm,'110101')=length(t.chr_bmdm)-length('110101')+1

等份於:

select * from pub_yh_bm t

where t.chr_bmdm like '%110101'

3.a%方式:

select * from pub_yh_bm t

where instr(t.chr_bmdm,'11010101')=1

等份於:

select * from pub_yh_bm t

where t.chr_bmdm like '11010101%'

ORACLE中LIKE語句優化

1 盡量不要使用 like 2。對於 like 不以 開頭 oracle 可以應用 colunm 上的index 3。對於 like 的 不以 結尾 可以利用 reverse function index 的形式,變化成 like 建測試表和 index 注意,重點在於帶 reverse 的func...

oracle 中模糊查詢 like

oracle中模糊查詢用like與萬用字元 實現 1 字段 like 關鍵字 字段包含 關鍵字 的記錄 2 字段 like 關鍵字 欄位以 關鍵字 開始的記錄 3 字段 like 關鍵字 欄位以 關鍵字 結束的記錄 如果要找出乙個欄位中既有 關鍵字1 又有 關鍵字2 可以用and條件 如果要找出乙個...

ORACLE中LIKE語句優化

1。盡量不要使用like 2。對於like 不以 開頭 oracle 可以應用colunm 上的index 3。對於like 的 不以 結尾 可以利用reverse function index 的形式,變化成like 建測試表和index 注意,重點在於帶reverse 的function ind...