gpt4 book ai didi

mysql - 计算位于另一个表中以逗号分隔的值的类别 id 的出现次数?

转载 作者:行者123 更新时间:2023-11-29 11:31:59 27 4
gpt4 key购买 nike

我有两个表如下第一个表T2

id | title
1 | one
2 | two
3 | three
4 | four

第二个表T2

id | name       | categories
1 | one | 1,2
2 | two | 1
3 | three | 2,3,4
4 | four | 1,2,3

期望的输出

id | title       | count
1 | one | 3
2 | two | 2
3 | three | 2
4 | four | 1

我尝试使用子查询来计算出现次数。我的查询只计算表 T1 的第一个 id。我不想为此使用额外的映射表。还有其他出路吗?

select title,(select count(t2.id) from t2P where t1.id in (t2.categories) ) from t1 group by t1.id

如何统计表T2中T1的id所在的行数?

最佳答案

尝试使用 MySQL FIND_IN_SET :

SELECT t.title,count(*)
FROM T1 t
INNER JOIN T2 s
ON(FIND_IN_SET(t.id,s.categories))
GROUP BY t.title

你应该大胆地改变你的数据库设计,这种结构可能而且可能会在未来引发很多问题。标准化您的数据!

关于mysql - 计算位于另一个表中以逗号分隔的值的类别 id 的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37248321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com