假设我有下表:
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/