繁体   English   中英

如何计算GROUP_CONCAT中有多少个逗号分隔的值

[英]How to count how many comma separated values in a GROUP_CONCAT

在这样的查询中:

SELECT GROUP_CONCAT(DISTINCT( p.products_id )) AS comma_separated 
FROM   products p 
       left join specials s 
              ON p.products_id = s.products_id 
       left join products_to_categories p2c 
              ON p.products_id = p2c.products_id 
       left join products_description pd 
              ON p.products_id = pd.products_id 
       inner join products_attributes pa 
               ON p.products_id = pa.products_id 
WHERE  p.products_status = '1' 
       AND p2c.categories_id = 57 
       AND Date_sub(Curdate(), interval 7000 day) <= p.products_date_added 
ORDER  BY p.products_id DESC 

我在名为comma_separated的字段中得到一长串逗号分隔数字的结果。 如何修改查询以计算有多少个逗号分隔的值?

编辑:

谢谢,巴尔玛(Barmar)提供以下答案。 我一直在寻找更短的数字列表(实际计数为107个值,而不是4000+),现在终于找到了原因。 看来GROUP_CONCAT限制为1024个字符,这对我的应用程序来说是非常糟糕的。 资料来源: http : //www.bennadel.com/blog/2669-mysql-group-concat-fails-silently-when-it-hits-its-size-limit.htm

使用COUNT进行计数。

SELECT Group_concat(DISTINCT( p.products_id )) AS comma_separated,
       COUNT(DISTINCT p.products_id) AS product_count
FROM ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM