Упорядочение значений в операторе 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
Аналогично, чтобы отсортировать значения в порядке убывания, используйте ключевое слово DESC после ASC:
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