我需要一种方法来计算逗号分隔的值,比如-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

它的性能将令人震惊,因为没有办法使用索引,而且数据将很容易变得不一致。
您的问题中的注释所指的是使用某种描述的关系表,其中不是存储逗号分隔的列表,而是为每个“事件”存储一行

09-20 10:55