我的桌子。
身份证考试名称isCombine
1正在读取0
2正在写入0
3数学3 1
4数学4 1
上表只是一个例子。在真正的表中有更多的列。我想合并is combine值为1的行,并保持其他行不变。
我期望得到以下输出。
身份证考试名称isCombine
1正在读取0
2正在写入0
3,4数学3,数学4 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 - MySql:如何只合并特定的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46048087/