1. 程式人生 > >Oracle 模糊查詢like %%和instr(strSource,strTarget)

Oracle 模糊查詢like %%和instr(strSource,strTarget)

在Oracle中提供了instr(strSource,strTarget)函式,比使用’%關鍵字%’的模式效率高很多。

模糊查詢:

instr(strSource,strTarget) 返回的是StrTarget在StrSource中的位置,從預設1開始,而 length(欄位名)返回欄位內容長度。

  1. 結尾
    此處查詢最後一個
    SELECT * FROM 使用者.表 WHERE INSTR(欄位名, ‘界’) = LENGTH(欄位名)
    SELECT * FROM 使用者.表 WHERE 欄位名 LIKE '%界‘;

    此處查詢最後兩個
    SELECT * FROM 使用者.表 WHERE INSTR(欄位名, ‘世界’) = LENGTH(欄位名)-1
    SELECT * FROM 使用者.表 WHERE 欄位名 LIKE '%世界‘;
    上面兩個是相等的,不過第一個效率高 。

  2. 包含

    SELECT * FROM 使用者.表 WHERE INSTR(欄位名, ‘世界’) >0;
    SELECT * FROM 使用者.表 WHERE 欄位名 LIKE '%世界%‘;

  3. 開頭

    SELECT * FROM 使用者.表 WHERE INSTR(欄位名, ‘你好’) =1;
    SELECT * FROM 使用者.表 WHERE 欄位名 LIKE ‘你好%’;