Supposons que je doive traiter avec beaucoup de grand-mères qui ont beaucoup de chats. J'ai une table granny_cat:Récupérer directement une liste à partir des données d'une colonne avec MySQL
granny_id | kitty_name
--------------------
1 Kizzy
1 Jimmy
1 Katty
2 Georges
2 Albert
3 Panther
et je veux récupérer une liste de mamie 1 chat de, par exemple pour obtenir quelque chose comme (avec la syntaxe php)
array("Kizzy","Jimmy","Katty")
Cependant, la requête
SELECT kitty_name WHERE granny_id = 1
retours quelque chose comme
array
(
array('kitty_name' => "Kizzy"),
array('kitty_name' => "Jimmy"),
array('kitty_name' => "Katty")
)
ce qui est assez logique, car je peux aller chercher deux ou plusieurs champs avec une requête similaire. Je peux évidemment mapper ce tableau pour obtenir ce que je veux, cependant, je me demande s'il existe un moyen (simple) de l'obtenir directement depuis mysql, ou pas.
Merci.
Merci, même si je ne peux pas utiliser la solution PostgreSQL, ma curiosité est satisfaite. La liste séparée par des virgules est cependant dangereuse, et si un chat s'appelle "Oh, vous êtes un joli minou !!" ? – user151229
@hlanak, bonne question de suivi. Vous aurez besoin de gérer vos propres délimiteurs de champs (que vous pouvez spécifier dans GROUP_CONCAT via SEPARATOR) et d'échapper. Vous pourriez encoder les champs HEX() avant caténation, par exemple. – pilcrow