首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

查询dm为4401开头的记录是用like '4401%' 还是 substr(dm,0,4)='4401' 效率高?解决方案

2012-02-13 
查询dm为4401开头的记录是用like 4401% 还是 substr(dm,0,4)4401 效率高?返回的记录集比较多.[解决办

查询dm为4401开头的记录是用like '4401%' 还是 substr(dm,0,4)='4401' 效率高?
返回的记录集比较多.

[解决办法]
like更方便,效率更高.
substr需要建立函数index才行.


引用楼主 newcomer1983 的帖子:
返回的记录集比较多.

[解决办法]
SQL code
可以考虑用INSTR:SQL> SELECT INSTR('4401ZZ4401','4401') STR FROM DUAL;       STR----------         1所以相应的WHERE语句是:WHERE INSTR(DM,'4401') = 1如果数据量大,可以考虑建基于INSTR(DM,'4401')函数的索引。
[解决办法]
我也同意like, 因为二范式里说=的左边少用函数

热点排行