我想为每个具有给定id的amountoperationmonthsfee唯一的数据簇返回一行。

表格如下:

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

SELECT amount, operation, months, fee, plan_id
FROM promo_discounts
WHERE promo_id = 1
GROUP BY amount, operation, months, fee

将会得到:

但是请注意,当我希望它返回类似plan_id的内容时,它仅返回一个1, 2, 3的内容

这可能吗?

最佳答案

您可以使用 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

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

09-11 03:08