【无标题】sql快速检查一个id值是否包含在一个以逗号拼接的id字符串中

<if test="orgIds != null and orgIds != ''">
        and instr(','|| #{orgIds} ||',',','||b.id||',') > 0
</if>

instr(完整字符串, 子字符串): 这是一个标准的 SQL 函数,用于查找一个字符串 (子字符串) 在另一个字符串 (完整字符串) 中的位置。如果找到,返回子字符串开始的位置;如果没有找到,则返回 0。

' ,' || #{orgIds} || ', ': 创建了一个以逗号开头和结尾的字符串,其中包含了所有的 orgIds。
',' || b.id || ',': 创建了一个以逗号开头和结尾的字符串,其中包含了当前记录的 id。
instr(','|| #{orgIds} ||',',','||so.id||','): 使用 instr 函数来检查 so.id 是否存在于 #{orgIds} 列表中。
如果 b.id 存在于 #{orgIds} 列表中,那么 instr 函数将返回一个大于零的数字,表示 so.id 的起始位置。否则,返回 0 表示 so.id 不在列表中。

<if test="name != null and name != ''">
        and instr(a.EMPLOYEE_NAME,#{name}) > 0
</if>

也可用于模糊查询。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值