假设我有下表:

ID|Col1    |Col2
1 |Test1   |Test12
2 |Test2   |Test22
2 |Test3   |Test32


当我使用类似的查询时:

SELECT GROUP_CONCAT(Col1) as First, GROUP_CONCAT(Col2) as Second WHERE ID=2 GROUP BY ID


有时会返回重新排列的GROUP_CONCAT。例如:

ID|First      |Second
2 |Test2,Test3|Test32,Test22


虽然我希望它会返回:

ID|First      |Second
2 |Test2,Test3|Test22,Test32


如您所见,它在名为“ Second”的列中切换了串联的值。如何防止这种情况发生?

最佳答案

如果要按特定顺序排列值,请使用order by

SELECT GROUP_CONCAT(Col1 ORDER BY Col1) as First,
       GROUP_CONCAT(Col2 ORDER BY col2) as Second
FROM t
WHERE ID = 2
GROUP BY ID;


通常,SQL处理无序集。如果要按特定的顺序排列东西,则需要显式指定顺序。

关于mysql - MySQL GROUP_CONCAT重新排列值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43140119/

10-12 14:37
查看更多