«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу контролировать порядок значений в операторе MySQL GROUP_CONCAT?

Как я могу контролировать порядок значений в операторе MySQL GROUP_CONCAT?

Опубликовано 15 ноября 2024 г.
Просматривать:990

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

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