我的 table 。
id Exam Name isCombine 1 Reading 0 2 Writing 0 3 Maths3 1 4 Maths4 1
上表只是一个例子。在真实表中有更多的列。我想合并 isCombine 值为 1 的行,并保留其他行。
我期待以下输出。
id Exam Name isCombine 1 Reading 0 2 Writing 0 3,4 Maths3,Maths4 1,1
我不确定,是否可能。但是,我们将不胜感激任何帮助或建议。
最佳答案
您可以使用 GROUP_CONCAT
:
SELECT CAST(id AS CHAR(50)) AS id, `Exam Name`, CAST(isCombine AS CHAR(50)) AS isCombine
FROM yourTable
WHERE isCombine = 0
UNION ALL
SELECT
GROUP_CONCAT(id),
GROUP_CONCAT(`Exam Name`),
GROUP_CONCAT(isCombine)
FROM yourTable
WHERE isCombine = 1
我没有包含任何特定的顺序,您也没有指定任何顺序。如果您希望合并的行始终出现,例如在底部,我们可以针对此要求稍微修改上面的查询。
输出:
此处演示:
Rextester
关于MySql:如何仅组合特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46048087/