--created by : wanglin
--created date : 2012-08-20
--created purpose: instr()函数,特殊用法,代替like,in
instr()返回值是目标字符(串)在母字符里第一次出现的位置,故而是整数。
例如:
instr("efabcdefg","e")的结果当然是1
instr(2,"efabcdefg","e")的结果就是7
instr(5,"efabcdefg","a")的结果就是0
instr("efabcdefg","k")的结果也是0
instr是内置函数,他是会走索引的,性能好。
like不一定:like '%iii%'是不走索引的,like 'ik%'走索引。
例如:
代替like:
SELECT code, name, dept, occupation FROM staff WHERE instr(code, '001') > 0;
等同于
SELECT code, name, dept, occupation FROM staff WHERE code LIKE '%001%' ;
代替in:
SELECT code , name , dept, occupation FROM staff WHERE code IN ('A10001','A10002');
等同于
SELECT code , name , dept, occupation FROM staff WHERE instr('A10001,A10002',code)>0
分享到:
相关推荐
在mysql中使用内部函数instr,可代替传统的like方式查询,并且速度更快。 instr 函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0. 例如,查询字段name中带”军”的...
这四个函数在用法上与 Oracle SQL 函数 LIKE、INSTR、SUBSTR 和 REPLACE 用法相同,但它们使用 POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。 POSIX 正则表达式由标准的元字符(metacharacters)所...
与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,但是它们使用POSIX 正则表达式代替了老的...
本文将详细地介绍 Oracle 语句优化的方法和技巧,涵盖多表关联、EXISTS 和 IN 语句的使用、INDEX_JOIN 优化、WHERE 和 HAVING 语句的区别、NOT IN 和 <> 操作符的使用、LIKE 操作符的替代、UNION 操作符的优化、SQL ...
11.2 特殊的转换函数 11.3 变换函数 11.3.1 TRANSLATE 11.3.2 DECODE 11.4 小结 第12章 分组函数 12.1 groupby和having的用法 12.1.1 添加一个orderby 12.1.2 执行顺序 12.2 分组视图 12.3 用别名重命名列 12.4 ...
11.2 特殊的转换函数 11.3 变换函数 11.3.1 TRANSLATE 11.3.2 DECODE 11.4 小结 第12章 分组函数 12.1 groupby和having的用法 12.1.1 添加一个orderby 12.1.2 执行顺序 12.2 分组视图 12.3 用别名重命名列 12.4 ...
- 尝试使用其他条件替代,如使用`NOT EXISTS`代替`IN`。 - 对于`<>`条件,可以考虑使用范围查询来替换。 #### 5. 大量的LIKE模式匹配 使用LIKE模式匹配时,如果模式是以通配符开头(如`'%abc'`),则索引可能不会...
使用InStr函数简化代码 `InStr`函数用于查找一个字符串是否包含另一个子串。相比于使用一系列的条件判断语句来检查字符或单词的存在性,使用`InStr`函数可以更加简洁高效。例如,要判断一个字符是否为元音字母,...
任何在 Order by 语句中使用函数都会使优化器不使用索引。例如:select * from employee order by UPPER(last_name); 这样就会使得优化器不使用 last_name 的索引。 五、结论 SQL 语句优化技术分析是提高系统性能...