在 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
此查询返回父权限名称的串联值,按升序排序。
Crafts » Joinery Administration » Organization
通过在其中指定 ORDER BY 子句在子查询中,我们可以控制连接值的顺序。这提供了一种灵活的方式来以自定义顺序呈现结果,使它们更具可读性和组织性。
请记住,ORDER BY 子句应放置在 GROUP_CONCAT() 后面的子查询的括号内。这允许 MySQL 在将值连接成单个字符串之前对它们进行排序。
以上是如何对 MySQL GROUP_CONCAT 语句中的值进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!