Mysql 计算逗号分隔字符串的出现次数

Mysql 计算逗号分隔字符串的出现次数,mysql,count,Mysql,Count,我需要一种方法来计算逗号分隔的值,就像这样-任何 有什么建议吗 表: id (int) | site (varchar) 1 | 1,2,3 2 | 2,3 3 | 1,3 期望输出: site | # of occurrences 1 | 2 2 | 2 3 | 3 在不深入了解您正在做什么的情况下,我假设您有一个站点表。如果是这样的话,在技术上可以通过以下方式实现 SELECT sites.site_id AS site, CO

我需要一种方法来计算逗号分隔的值,就像这样-任何 有什么建议吗

表:

id (int) | site (varchar)
1        | 1,2,3
2        | 2,3
3        | 1,3
期望输出:

site | # of occurrences
1    | 2
2    | 2
3    | 3

在不深入了解您正在做什么的情况下,我假设您有一个
站点
表。如果是这样的话,在技术上可以通过以下方式实现

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
这样做的性能将令人震惊,因为没有办法使用索引,而且数据很容易变得不一致


您问题中的注释所指的是使用某种描述的关系表,其中不是存储逗号分隔的列表,而是为每个“事件”存储一行。

1。不要以逗号分隔的字符串开头,也不要麻烦使用RDBMS