对 GROUP_CONCAT 语句中的值进行排序
MySQL 中的 GROUP_CONCAT 函数使您能够连接按指定列分组的值。但是,默认情况下,这些值不会排序。为了解决这个问题,有一个简单的解决方案。
解决方案:
具有排序功能的 GROUP_CONCAT 语法为:
GROUP_CONCAT(DISTINCT <expression> ORDER BY <order_expression> <direction> SEPARATOR <separator>)
其中:
示例:
在提供的查询中,要按字母顺序对串联值进行排序,您可以进行如下修改:
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 GROUP BY parent.id ORDER BY parent.name) SEPARATOR "<br />\n") AS competences
通过在子查询中指定 ORDER BY Parent.name,值将在连接之前按字母顺序排序。这将输出所需的结果:
管理 » 组织
工艺 » 细木工
以上是如何对 GROUP_CONCAT 语句中的值进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!