mysql 查询某字段中以逗号分隔的字符串的方法

mysql 查询某字段中以逗号分隔的字符串的方法



前言

现在有如下场景。我们有一个案例表。每一个案例对应多个标签,一个标签对应一个案例。我们在前台做分页的时侯,需要对多个标签进行与匹配
表数据结构如下


https://cdnvue.gymcity.com.cn/betterwe_1.0/userlogo/userlogopro62d8bf98afde709d37c08f7b129e96277388757530c72.png

一、首先讲一个需求

需要查出crowd_label_id 为 4,6,9的所有case_id 4,6,9为与条件

  1. 首先查询出对应case_id所有满足的标签 也就是行转列 使用GROUP_CONCAT函数在这里插入图片描述
  2. 查询出来后我们就知道对应的case_id所有的标签。
  3. 剩下就是如果根据label_id去做匹配了。这时候我们可以用到mysql函数FIND_IN_SET来匹配字符串中是否存在指定的标签。当然这一步也可以放到程序中去做判断。
    在这里插入图片描述
    结果上面完美匹配了label_id包含4,9的所有case_id

附上sql

SELECT * FROM (
SELECT case_id,GROUP_CONCAT(crowd_label_id) AS aa FROM weapp_case_label WHERE crowd_label_id IN (4,6,9) GROUP BY case_id
) AS aaa WHERE  FIND_IN_SET('4', aa) AND FIND_IN_SET('9', aa) 

总结

这里主要的知识点是mysql的行转列,有多行数据如果拼成一列去展示出来。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员若风+

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值