列出组查询中的ID

Ste*_*ins 16 mysql group-by

我想回到一排,有一个独特的数据的每个集群amount,operation,months,和fee对于给定的ID.

表如下:

在此输入图像描述

我几乎可以得到我想要的东西

SELECT amount, operation, months, fee, plan_id
FROM promo_discounts
WHERE promo_id = 1
GROUP BY amount, operation, months, fee
Run Code Online (Sandbox Code Playgroud)

哪个会得到:

在此输入图像描述

但请注意,plan_id当我希望它返回类似的东西时,它只返回一个1, 2, 3

这可能吗?

irc*_*ell 36

你可以用 GROUP_CONCAT

SELECT amount, operation, months, fee, 
    GROUP_CONCAT(DISTINCT plan_id SEPARATOR ',') AS plan_id
FROM promo_discounts
WHERE promo_id = 1
GROUP BY amount, operation, months, fee
Run Code Online (Sandbox Code Playgroud)

请注意,默认最大长度为1024,因此如果您使用大表执行此操作,则可能会截断值...


Tho*_*ten 6

看看group_concat()函数.

SELECT *, GROUP_CONCAT(id SEPARATOR ",") AS grouped_ids FROM table