使用 GROUP_CONCAT 函数组合分组行的值时,维护这些值的顺序非常有用。
假设我们有一个名为“li”,包含以下列:client_id、观看次数和百分比。我们希望按 client_id 对行进行分组并连接视图值。我们首先尝试以下操作:
SELECT li.client_id, group_concat(li.views) AS views, group_concat(li.percentage) FROM li GROUP BY client_id;
这会产生视图连接的结果,但顺序是任意的:
+-----------+-------------------+-----------------------------+ | client_id | views | group_concat(li.percentage) | +-----------+-------------------+-----------------------------+ | 1 | 6,4,9,2,7,5,3,8,1 | 20,55,56,67,80,66,33,34,52 | +-----------+-------------------+-----------------------------+
到对 GROUP_CONCAT 中的结果进行排序,我们可以在函数:
SELECT li.client_id, group_concat(li.views ORDER BY li.views ASC) AS views, group_concat(li.percentage ORDER BY li.views ASC) AS percentage FROM li GROUP BY client_id
这将以升序对视图列进行排序,同时保持相应的百分比值保持相同的顺序:
+-----------+-------------------+----------------------------+ | client_id | views | percentage | +-----------+-------------------+----------------------------+ | 1 | 1,2,3,4,5,6,7,8,9 | 52,67,33,55,66,20,80,34,56 | +-----------+-------------------+----------------------------+
以上是如何控制 MySQL GROUP_CONCAT 函数中值的顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!