我需要一种方法来计算逗号分隔的值,比如-any
有什么建议吗?
表格:
id (int) | site (varchar)
1 | 1,2,3
2 | 2,3
3 | 1,3
期望输出:
site | # of occurrences
1 | 2
2 | 2
3 | 3
最佳答案
如果不知道你在做什么,我假设你有一张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
它的性能将令人震惊,因为没有办法使用索引,而且数据将很容易变得不一致。
您的问题中的注释所指的是使用某种描述的关系表,其中不是存储逗号分隔的列表,而是为每个“事件”存储一行