Oracle 模糊查询like %%和instr(strSource,strTarget)

在Oracle中提供了instr(strSource,strTarget)函数,比使用’%关键字%’的模式效率高很多。

模糊查询:

instr(strSource,strTarget) 返回的是StrTarget在StrSource中的位置,从默认1开始,而 length(字段名)返回字段内容长度。

  1. 结尾
    此处查询最后一个
    SELECT * FROM 用户.表 WHERE INSTR(字段名, ‘界’) = LENGTH(字段名)
    SELECT * FROM 用户.表 WHERE 字段名 LIKE '%界‘;

    此处查询最后两个
    SELECT * FROM 用户.表 WHERE INSTR(字段名, ‘世界’) = LENGTH(字段名)-1
    SELECT * FROM 用户.表 WHERE 字段名 LIKE '%世界‘;
    上面两个是相等的,不过第一个效率高 。

  2. 包含

    SELECT * FROM 用户.表 WHERE INSTR(字段名, ‘世界’) >0;
    SELECT * FROM 用户.表 WHERE 字段名 LIKE '%世界%‘;

  3. 开头

    SELECT * FROM 用户.表 WHERE INSTR(字段名, ‘你好’) =1;
    SELECT * FROM 用户.表 WHERE 字段名 LIKE ‘你好%’;

猜你喜欢

转载自blog.csdn.net/qq_43047126/article/details/82909086