oracle模糊搜索避免使用like,替换为instr()
2024-09-08 02:55:20
oracle中instr()函数用法
instr(name,'张三')>0 相当于 name like '%张三%' |
instr(name,'张三')=1 相当于 name like '张三%' |
instr(name,'张三')=0 相当于 name not like '%张三%' |
实验得出,在一个2亿多条记录的表中,同时8个并行,使用like查询很久都不出来结果,但使用instr,4分钟即完成查找,性能是相当的好。由此可得,ORACLE内建的一些函数,是经过相当程度的优化的。
同时总结一个特殊用法:
select t.* from book t where instr('12076, 12077', id) > 0;
它等价于
select t.* from book t where id = 12076 or id = 12077;
针对oracle中的number类型数据可能为null,查询时使用如下方式:
select nvl(t.total,0) total from book t
nvl()函数可以设置查询值为null是赋予默认值。
最新文章
- 特性 Attribute
- Web API应用架构设计分析(1)
- WebLogic部署
- C# 枚举(enum)
- inoic是什么
- JavaScipt call和apply用法
- 再探ASP.NET 5(转载)
- SQLServer,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表xx中的标识列指定显式值
- bash和sh区别
- /etc/profile /etc/bashrc ~/.bash_profile ~/.bashrc ~/.bash_logout 说明及区别
- JDK1.8源码(一)——java.lang.Object类
- XML数据读取——Digester简单使用
- Ubuntu下的Selenium爬虫的配置
- ubuntu自带截图工具--方便好用(转)
- flask再学习-思考之怎么从数据库中查询数据在页面展示!
- MySQL全文本搜索
- Ogre 编辑器二(用Ogre的地形组件加载天龙八部地形)
- Python调shell
- msgpack配合FIREDAC传输多表数据
- python笔记08-----正则表达式