instr()
SELECT *
from pf1001
where 1=1
<if test="attrName != null" >
and instr(attrName,#{attrName, jdbcType=VARCHAR})>0
</if>
<if test="attrCode != null" >
and instr(attrCode,#{attrCode, jdbcType=VARCHAR})>0
</if>
1.上图sql是进行模糊查询
对attrName,attrCode模糊搜索
优点:在没有索引的前提下,当数据量比较大时,instr要比like效率高
2.参考:每天一个比较有文化的sql语句1
3. instr函数是一个字符串处理函数
它在Oracle/PLSQL中是返回子字符串在源字符串中的位置,如果在源串中没有找到子串,则返回0。
4.instr()特殊用法
5.以前只知道instr代替like的时候 固定写成>0 ,现在才知道,instr返回的是字符串所在位置
也可以说 第一个参数是母串,第二个参数是子串,比如
instr(#{scopeIds, jdbcType=VARCHAR},pf1001.scopeId) > 0