怎么判断mysql里某的字段是否包含特定的值并且count

如下表

id | tag | time |
| —- | —- | —-|
| 1 | 2,4,5,| 2022 |
| 2 | 3,6,7 | 2022 |
| 3| 23,4,7 | 2022 |

怎么count出tag里包含3的数据,用like会不会把23也算进去

自问自答:whereRaw("FIND_IN_SET($tag_id, `tag_id`)")
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 4
陈先生

最简单且最笨的方法,结构做成这样 ,1,2,3,4,5,6,78,7,8,23,32,34,43 你直接模糊搜索 ,4, 最简单且不用最不用消耗脑力的做法,但是还是建议做关联表。

1年前 评论

用正则去匹配

SELECT count(tag) FROM tags WHERE tag REGEXP '(^3$|^3[,]|[,]3$|[,]3[,])'

这样会导致全表扫描

1年前 评论

SELECT count(tag) FROM tags WHERE FIND_IN_SET($tag_id,ist);

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!