Mysql的instr()函数用法

    mysql的内置函数instr(filed,str),作用是返回str子字符串在filed字符串的第一次出现的位置。当instr(filed,str)=0时,表示子符串str不存在于字符串filed中,因此可以用来实现mysql中的模糊查询,与like用法类似。如下:

 // 1、instr()函数,#{name}为参数
select id,name from test where instr(name,#{name})>0 

上述写法等同于下面
// 2、like
select id,name from test where name like concat('%',#{name},'%')

 instr(filed,str) > 0 ⇒ file like '%str%'
instr(filed,str) = 1 ⇒ file like  'str%'
instr(filed,str) = 0 ⇒ file not like  '%str%'

下面是一段mapper.xml的部分示例代码 

<select id="selectUserListByConds" parameterType="java.lang.String" resultMap="BaseResultMap">
        select
        a.userid,
        a.username,
        a.account,
        a.password,
        a.mobile,
        a.description,
        a.delete_flag,
        a.enabled,
        a.email,
        a.address,
        a.is_online,
        a.created_time,
        a.updated_time,
        a.created_user,
        a.updated_user,
        a.org_code,
        s.org_name,
        a.limit_ip,
        a.expiry_date,
        a.last_login_time,
        a.last_login_ip,
        a.account_type,
        a.account_type_name,
        a.tenant_id
        from s_user a
        left join s_department s on s.org_code=a.org_code and s.tenant_id=a.tenant_id
        where 1=1
        <if test="showdelete==null">
            and a.delete_flag!=1
        </if>
        <if test="account!=null and account!=''">
            and instr(a.account,#{account})>0
        </if>
        <if test ="username!=null and username!=''">
            and instr(a.username,#{username})>0
        </if>

        <if test="roleIds!=null and roleIds!=''">
            and exists(select * from s_user_role where user_id=a.userid and role_id = #{roleIds})
        </if>

        <if test="orgCode!=null and orgCode!=''">
            and instr(a.org_code,#{orgCode})>0
        </if>
        <if test="tenantId!=null and tenantId!=''">
            and a.tenant_id=#{tenantId}
        </if>
        order by a.created_time DESC
    </select>

 

部分引用来自:Mysql的instr()函数用法_mysql instr_今夜无风亦无雨的博客-CSDN博客

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值