以下的文章主要介紹的是Oracle數據庫中用instr來代替like,假設表裡有1100萬數據,在很多的情況下,我們對其進行相關的字符串匹配,在SQL語句的實際應用中,我們一般的使用like來達到我們搜索的目標。
但經過實際測試發現,like的效率與instr函數差別相當大。下面是一些測試結果:
- SQL> set timing on
- SQL> select count(*) from t where instr(title,’手冊’)>0;
- COUNT(*)
- ———-
- 65881
- Elapsed: 00:00:11.04
- SQL> select count(*) from t where title like ‘%手冊%’;
- COUNT(*)
- ———-
- 65881
- Elapsed: 00:00:31.47
- SQL> select count(*) from t where instr(title,’手冊’)=0;
- COUNT(*)
- ———-
- 11554580
- Elapsed: 00:00:11.31
- SQL> select count(*) from t where title not like ‘%手冊%’;
- COUNT(*)
- ———-
- 11554580
注:
instr(title,’手冊’)>0 相當於like
instr(title,’手冊’)=0 相當於not like
上述的相關內容就是對Oracle數據庫用instr代替like的描述,希望會給你帶來一些幫助在此方面。