"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso controlar a ordem dos valores em uma instrução MySQL GROUP_CONCAT?

Como posso controlar a ordem dos valores em uma instrução MySQL GROUP_CONCAT?

Publicado em 15/11/2024
Navegar:155

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

Ordenando valores em uma instrução GROUP_CONCAT

No MySQL, GROUP_CONCAT combina valores de uma coluna com base em um agrupamento específico. No entanto, a ordem dos valores concatenados normalmente é determinada pela ordem em que ocorre o agrupamento. Para controlar a classificação desses valores, é necessária uma sintaxe específica.

Para classificar os valores concatenados em uma instrução GROUP_CONCAT, use uma cláusula ORDER BY na consulta aninhada. Por exemplo, considere a seguinte consulta:

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

Para classificar os valores de competência concatenados em ordem crescente, modifique a consulta da seguinte forma:

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

Da mesma forma, para classificar os valores em ordem decrescente, use uma palavra-chave DESC após 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
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3