`

instr()函数,特殊用法,代替like,in

 
阅读更多

--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

3
2
分享到:
评论

相关推荐

    mysql中使用instr进行模糊查询方法介绍

    在mysql中使用内部函数instr,可代替传统的like方式查询,并且速度更快。 instr 函数,第一个参数是字段,第二个参数是要查询的串,返回串的位置,第一个是1,如果没找到就是0. 例如,查询字段name中带”军”的...

    sql中判断某列是否为数字.docx

    这四个函数在用法上与 Oracle SQL 函数 LIKE、INSTR、SUBSTR 和 REPLACE 用法相同,但它们使用 POSIX 正则表达式代替了老的百分号(%)和通配符(_)字符。 POSIX 正则表达式由标准的元字符(metacharacters)所...

    oracle正则表达式regexp_like的用法详解

    与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在用法上与Oracle SQL 函数LIKE、INSTR、SUBSTR 和REPLACE 用法相同,但是它们使用POSIX 正则表达式代替了老的...

    oracle语句优化.docx

    本文将详细地介绍 Oracle 语句优化的方法和技巧,涵盖多表关联、EXISTS 和 IN 语句的使用、INDEX_JOIN 优化、WHERE 和 HAVING 语句的区别、NOT IN 和 <> 操作符的使用、LIKE 操作符的替代、UNION 操作符的优化、SQL ...

    Oracle_Database_11g完全参考手册.part3/3

    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 ...

    Oracle_Database_11g完全参考手册.part2/3

    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 ...

    oracle索引失效的总结

    - 尝试使用其他条件替代,如使用`NOT EXISTS`代替`IN`。 - 对于`<>`条件,可以考虑使用范围查询来替换。 #### 5. 大量的LIKE模式匹配 使用LIKE模式匹配时,如果模式是以通配符开头(如`'%abc'`),则索引可能不会...

    N招提高VB运行速度.txt

    使用InStr函数简化代码 `InStr`函数用于查找一个字符串是否包含另一个子串。相比于使用一系列的条件判断语句来检查字符或单词的存在性,使用`InStr`函数可以更加简洁高效。例如,要判断一个字符是否为元音字母,...

    ORACLE-SQL语句优化技术分析.docx

    任何在 Order by 语句中使用函数都会使优化器不使用索引。例如:select * from employee order by UPPER(last_name); 这样就会使得优化器不使用 last_name 的索引。 五、结论 SQL 语句优化技术分析是提高系统性能...

Global site tag (gtag.js) - Google Analytics