获取 GROUP_CONCAT() - MySQL 的数组大小

Get array size for GROUP_CONCAT() - MySQL

我是 运行 我使用 GROUP_CONCAT() 的查询,现在我想知道这个数组的长度。我使用了 LENGTH(),但是,这显示了行中的字符数。我应该首先使用 GROUP_CONCAT() 吗?

我期待的结果:

Id GROUP_CONACT() LENGTH
1 A, B 2
2 C, D 2
3 E, F, G 3
4 A, D 2
5 A, B, D, E, G 5

我不明白为什么你不能只使用 COUNT() 函数,例如:

item | accessory
1    | a
1    | b
1    | c
2    | d
2    | e
SELECT item,
       GROUP_CONCAT(accessory) AS accessories,  -- the CSV string
       COUNT(*) AS num_accessories              -- the "size" of the array
FROM yourTable
GROUP BY item;

我认为你想要实现的是计算 ','+1 的出现次数: 使用

ROUND (   
        (
          LENGTH(concated)-LENGTH(REPLACE(concated, ",", "")))/LENGTH(",")+1
    ) AS COUNT


替换连接到您的 GROUP_CONCAT