我想为每个具有给定id的amount
,operation
,months
和fee
唯一的数据簇返回一行。
表格如下:
我几乎可以得到想要的东西
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,因此,如果使用大表执行此操作,则可能会截断值...