mysql查询某个字段含有多个值

场景:根据设备用途(字段为use_for)筛选查询设备信息,前端是下拉多选框,传给后台多个设备用途id(例如21 ,22);需要根据多个id查询出匹配的结果

方法1:

用mybatis遍历结合FIND_IN_SET 实现;以下list为用途id集合

select id,name,USE_FOR from device_basic_info where 1=1
<if test="list != null">
and
<foreach item="item" index="index" collection="list"

open="(" separator="," close=")" separator="or">

    FIND_IN_SET(#{item},USE_FOR)

</foreach>
</if>

方法2:

1.单独查询设备id为21的 设备信息

2.单独查询设备id为22的 设备信息

3.合并结果集并去除重复值

select distinct dd.id,dd.name,dd.use_for from (

(select * from device_basic_info where FIND_IN_SET('21',USE_FOR)

UNION all

(select * from device_basic_info where FIND_IN_SET('22',USE_FOR)

) dd

  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值