Retornando consulta no MySQL com dados separados por vírgula ou outro caractere

Prefácio

Me desculpem… Mas eu tive que escrever sobre isso…
Esta semana eu estive num mato sem cachorro… Precisava retornar todos os dados de uma tabela em um único campo. Antes de dizer que eu realmente sabia programar em PHP, eu costumava fazer isso puxando todos os dados e juntando eles via foreach, no começo e, posteriormente, implode. Hoje não mais… Descobri algo que mudou minha vida…
Uma função do MySQL chamada GROUP_CONCAT().

Mão na massa

Utilizando esta função podemos separar qualquer tipo de dado utilizando qualquer caractere.

Digamos que temos uma tabela chamada categorias e desejamos consultar todos os nomes de categorias. Para tanto, utilizaremos o seguinte snippet SQL:

SELECT GROUP_CONCAT( nome ORDER BY nome ASC SEPARATOR ',' ) AS todas_categorias FROM categorias

Tá… Mas e como funciona?

Ao chamar o GROUP_CONCAT() nós colocamos uma pseudo-subconsulta indicando qual campo (deve ser apenas um) que será coletado. Depois ao indicar o SEPARATOR, especificamos qual será o separador dos dados retornados. Por fim, renomeamos o campo para todas_categorias e este será o resultado obtido. :)

Conclusão

Mais simples que dar print! :P

Vou aproveitar a conclusão que não tem muito o que concluir e vou falar que o layout novo está quase pronto!
Finalmente tive avanços e o CSS está pronto! Agora estou finalizando o HTML e as consultas!

Valeu a todos que estão me apoiando e visitem o Aprenda PHP

Abraços e fiquem com Deus!

Esta entrada foi publicada em MySQL e marcada com a tag , , . Adicione o link permanente aos seus favoritos.

Uma pessoa já comentou! Tá esperando o quê?

  1.  
    Leonardo L Proc disse:

    Muito bom! Função macabra! :)

    Utilizando PHP PHP

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">