我需要一种方法来计算这样的逗号分隔值 - 任何 建议好吗?
表:
id (int) | site (varchar)
1 | 1,2,3
2 | 2,3
3 | 1,3
期望的输出:
site | # of occurrences
1 | 2
2 | 2
3 | 3
答案 0 :(得分:0)
如果不完全了解你正在做的事情,我会假设你有一张sites
表。如果是这样,它在技术上可以实现类似
SELECT sites.site_id AS site, COUNT(1) AS `# of occurrences`
FROM sites
INNER JOIN table ON FIND_IN_SET(sites.site_id, table.site)
GROUP BY sites.site_id
由于无法使用索引,因此性能将会令人震惊,并且数据将很容易变得不一致。
您的问题中的评论暗指的是,使用某些描述的关系表,而不是存储以逗号分隔的列表,而是为每个“事件”存储一行