问答 / 0 / 4 / 创建于 2年前 / 更新于 2年前
id | tag | time || —- | —- | —-|| 1 | 2,4,5,| 2022 || 2 | 3,6,7 | 2022 || 3| 23,4,7 | 2022 |
怎么count出tag里包含3的数据,用like会不会把23也算进去
tag
自问自答:whereRaw("FIND_IN_SET($tag_id, `tag_id`)")
最简单且最笨的方法,结构做成这样 ,1,2,3,4,5,6,78,7,8,23,32,34,43 你直接模糊搜索 ,4, 最简单且不用最不用消耗脑力的做法,但是还是建议做关联表。
,1,2,3,4,5,6,78,7,8,23,32,34,43
,4,
用正则去匹配
SELECT count(tag) FROM tags WHERE tag REGEXP '(^3$|^3[,]|[,]3$|[,]3[,])'
这样会导致全表扫描
用find_in_set
SELECT count(tag) FROM tags WHERE FIND_IN_SET($tag_id,ist);
我要举报该,理由是:
最简单且最笨的方法,结构做成这样
,1,2,3,4,5,6,78,7,8,23,32,34,43
你直接模糊搜索,4,
最简单且不用最不用消耗脑力的做法,但是还是建议做关联表。用正则去匹配
这样会导致全表扫描
用find_in_set
SELECT count(tag) FROM tags WHERE FIND_IN_SET($tag_id,ist);