前言
今天发现了一个更高级的函数instr(),所以今天就介绍介绍这个函数。这个函数俗称
字符查找函数
,但是也可以用来做模糊查询。
一、instr()用法
格式一:
instr( C1, C2) ---》说明: instr(源字符串, 目标字符串)
select instr('hellohello','h') from dual
select instr('hellohello','ll') from dual
格式二:
instr( C1,C2,I,J ) -----》说明: instr(源字符串, 目标字符串, 起始位置, 匹配序号)
C1 被搜索的字符串
C2 希望搜索的字符串
I 搜索的开始位置,默认为1
J 出现的位置,默认为1
描述为:
在C1中搜索C2,从第 I 个位置开始搜索(包括这个I),直到出现第J次C2,返回这个序号,(I 也可以为负数,表示从倒数第一个位置开始数,但是返回的序号还是从正的数的那个序号)
注:在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。
只检索一次
,也就是说从字符的开始到字符的结尾就结束。
select instr('hellohello','l',2,2) from dual;
select instr('hellohello','l',3,2) from dual;
select instr('hellohello','l',4,2) from dual;
select instr('hellohello','l',-1,1) from dual;
select instr('hellohello','l',-2,2) from dual;
select instr('hellohello','l',2,3) from dual;
select instr('hellohello','l',-2,3) from dual;
instr() 和like的相同之处,
首先回顾一下like的用法:
字段 like ‘%关键字%’ 表示字段包含”关键字”的所有记录
字段 like ‘关键字%’ 表示字段以”关键字”开始的所有记录
字段 like ‘%关键字’ 表示字段以”关键字”结束的所有记录
字段 not like '%关键字 %' 表示字段不包含“关键字”的所有
那么instr()的用法
instr(字段,'关键字') > 0 相当于 字段like '%关键字%': 表示字段包含”关键字”的所有记录
instr(字段,'关键字') = 1 相当于 字段like '关键字%' 表示字段以”关键字”开始的所有记录
instr(字段,'关键字') = 0 相当于 字段not like '%关键字%' 表示字段不包含“关键字”的所有
select * from tableName where name like '%hello%';
select * from tableName where instr(name,'hello')>0
在一定程度上,instr()的查询效率还是比like要好的,这里就不测试了,大家可以在一张表里建个几万条数据查查看,看下哪个效率高一点。
嘿嘿 还有一点就是,你使用高级函数,给人的感觉还是不一样的,给人刮目相看的感觉哦,所以记住这个instr函数了吗
感谢作者的分享,让技术人能够更快的解决问题
Android apk安装 使用设备ID进行限制 方法 安卓设备限制安装软件
最近看了很多关于状态栏的问题的处理,总结出处理状态栏分两个方向1>5.0一下2>5.0以上的手机状态栏的设置,,,,,,,,这里说的都是自定义的toolbar,我这里已经把titlebar给隐藏掉了(1) 关于5.0一下:首先我们需要在res文件下的style中设置,<!-- Base application theme. -->
<style name="AppTh