悲伤,快乐
开心、生气、无聊无聊悲伤、快乐、无聊、大笑
我有一个栏目叫" feedback ",还有一个栏目叫" emotion "。在这些情绪字段中,我们可以看到随机值和随机长度,如
您将需要一个名为'Emotions'的表,每个情绪都有它自己的主键,以及任何其他应该与每个情绪相关的信息列,以便您可以在必要时加入它们。在使用SQL时,当您将想要提供的数据组合在同一列中检索时,这是非常糟糕的。每个列、行以及行与列之间的字段应该有一个元素。我建议不要在一个单元格中使用逗号。
这是你需要的
SELECT NAME AS emotions,COUNT(NAME) FROM (SELECT
TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(emotions.emotions, ',', numbers.n), ',', -1)) name
FROM
(SELECT 1 n UNION ALL SELECT 2
UNION ALL SELECT 3 UNION ALL SELECT 4) numbers INNER JOIN emotions
ON CHAR_LENGTH(emotions.emotions)
-CHAR_LENGTH(REPLACE(emotions.emotions, ',', ''))>=numbers.n-1
ORDER BY
ID, n) emotions
GROUP BY name