使用 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中文網其他相關文章!