[英]How to get sum of comma separated values returned by GROUP_CONCAT(if(type = 'tax',amount,NULL)) AS 'tax'
[英]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.