Oracle 模糊查詢like %%和instr(strSource,strTarget)
阿新 • • 發佈:2018-11-21
在Oracle中提供了instr(strSource,strTarget)函式,比使用’%關鍵字%’的模式效率高很多。
模糊查詢:
instr(strSource,strTarget) 返回的是StrTarget在StrSource中的位置,從預設1開始,而 length(欄位名)返回欄位內容長度。
-
結尾
此處查詢最後一個
SELECT * FROM 使用者.表 WHERE INSTR(欄位名, ‘界’) = LENGTH(欄位名)
SELECT * FROM 使用者.表 WHERE 欄位名 LIKE '%界‘;此處查詢最後兩個
SELECT * FROM 使用者.表 WHERE INSTR(欄位名, ‘世界’) = LENGTH(欄位名)-1
SELECT * FROM 使用者.表 WHERE 欄位名 LIKE '%世界‘;
上面兩個是相等的,不過第一個效率高 。 -
包含
SELECT * FROM 使用者.表 WHERE INSTR(欄位名, ‘世界’) >0;
SELECT * FROM 使用者.表 WHERE 欄位名 LIKE '%世界%‘; -
開頭
SELECT * FROM 使用者.表 WHERE INSTR(欄位名, ‘你好’) =1;
SELECT * FROM 使用者.表 WHERE 欄位名 LIKE ‘你好%’;