」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何控制 MySQL GROUP_CONCAT 語句中值的順序?

如何控制 MySQL GROUP_CONCAT 語句中值的順序?

發佈於2024-11-15
瀏覽:388

How Can I Control the Order of Values in a MySQL GROUP_CONCAT Statement?

對 GROUP_CONCAT 語句中的值進行排序

在 MySQL 中,GROUP_CONCAT 根據特定分組組合來自一列的值。然而,連接值的順序通常由分組發生的順序決定。要控制這些值的排序,需要特定的語法。

若要對 GROUP_CONCAT 語句中的串連值進行排序,請在巢狀查詢中使用 ORDER BY 子句。例如,考慮以下查詢:

GROUP_CONCAT((SELECT GROUP_CONCAT(parent.name SEPARATOR " » ") 
FROM test_competence AS node, test_competence AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt 
  AND node.id = l.competence 
  AND parent.id != 1 
ORDER BY parent.lft) SEPARATOR "<br />\n") AS competences

要按升序對連接的能力值進行排序,請修改查詢如下:

GROUP_CONCAT((SELECT GROUP_CONCAT(parent.name SEPARATOR " » ") 
FROM test_competence AS node, test_competence AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt 
  AND node.id = l.competence 
  AND parent.id != 1 
ORDER BY parent.lft ASC) SEPARATOR "<br />\n") AS competences

同樣,要按降序對值進行排序,請在ASC 後使用DESC 關鍵字:

GROUP_CONCAT((SELECT GROUP_CONCAT(parent.name SEPARATOR " » ") 
FROM test_competence AS node, test_competence AS parent 
WHERE node.lft BETWEEN parent.lft AND parent.rgt 
  AND node.id = l.competence 
  AND parent.id != 1 
ORDER BY parent.lft DESC) SEPARATOR "<br />\n") AS competences
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3