查询dm为4401开头的记录是用like '4401%' 还是 substr(dm,0,4)='4401' 效率高?
返回的记录集比较多.
[解决办法]
like更方便,效率更高.
substr需要建立函数index才行.
可以考虑用INSTR:SQL> SELECT INSTR('4401ZZ4401','4401') STR FROM DUAL; STR---------- 1所以相应的WHERE语句是:WHERE INSTR(DM,'4401') = 1如果数据量大,可以考虑建基于INSTR(DM,'4401')函数的索引。
[解决办法]
我也同意like, 因为二范式里说=的左边少用函数