龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle数据库中用instr代替like实操

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
以下的文章主要介绍的是 Oracle 数据库中用instr来代替like,假设表里有1100万数据,在很多的情况下,我们对其进行相关的字符串匹配,在SQL语句的实际应用中,我们一般的使用like来达到

以下的文章主要介绍的是Oracle数据库中用instr来代替like,假设表里有1100万数据,在很多的情况下,我们对其进行相关的字符串匹配,在SQL语句的实际应用中,我们一般的使用like来达到我们搜索的目标。

但经过实际测试发现,like的效率与instr函数差别相当大。下面是一些测试结果:

  1. SQL> set timing on  
  2. SQL> select count(*) from t where instr(title,’手册’)>0;  
  3. COUNT(*)  
  4. ———-  
  5. 65881  
  6. Elapsed: 00:00:11.04  
  7. SQL> select count(*) from t where title like ‘%手册%’;  
  8. COUNT(*)  
  9. ———-  
  10. 65881  
  11. Elapsed: 00:00:31.47  
  12. SQL> select count(*) from t where instr(title,’手册’)=0;  
  13. COUNT(*)  
  14. ———-  
  15. 11554580  
  16. Elapsed: 00:00:11.31  
  17. SQL> select count(*) from t where title not like ‘%手册%’;  
  18. COUNT(*)  
  19. ———-  
  20. 11554580  

注:

instr(title,’手册’)>0 相当于like

instr(title,’手册’)=0 相当于not like

治理oracle数据库


上述的相关内容就是对Oracle数据库用instr代替like的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

精彩图集

赞助商链接