MySQL colonne de données retournés comme une liste délimitée par des virgules

Actuellement j'ai une table MySQL comme:

id | friend
1  |   2
1  |   5
1  |   10
3  |   6
15 |   19
21 |   4

Je suis en train de récupérer tout l'ami de l'id d'un utilisateur en particulier et de les organiser en une liste délimitée par des virgules. Par exemple, s'emparant du user1 amis, il serait de retour que

$friend_list = 2,5,10

Actuellement, j'ai:

$sql = "SELECT friend FROM table__friends WHERE id = ".$user_id;

Ce ne récupère une ligne mais..s'il vous plaît aider!

Grâce

  • Je suis assez fortement contre GROUP_CONCAT - il se sent comme la mauvaise utilisation d'un moteur de base de données pour moi.
  • Je ne sais pas pourquoi, aucune mise en garde de la part de la MySQL gens, ainsi, la question a été marqué MySQL, pas de PHP. -À chacun son propre ami, viens de dire 🙂
  • Je suppose que c'est parce que les opérations de base de données devraient pas manipuler et retourner les tables de données - ils ne devraient pas traiter avec des "faux" types de données comme une chaîne séparée par des virgules, donc c'est une mauvaise "odeur de code" pour moi. Toutes les fois que vous avez une liste délimitée par des virgules, vous devriez probablement juste de le laisser dans les lignes ou un tableau à la place. Voici un bon exemple des problèmes que vous pouvez rencontrer: stackoverflow.com/questions/6643656/...
  • La juste réponse, même si je suis en désaccord. En demandant au moteur de base de données pour revenir à un format que je préfère a peu à voir avec la structure ou de la normalisation.
InformationsquelleAutor Delos Chang | 2012-06-11