Fondamentalement, la question est de savoir comment obtenir de cela:
foo_id foo_name 1 A 1 B 2 C
pour ça:
foo_id foo_name 1 AB 2 C
Fondamentalement, la question est de savoir comment obtenir de cela:
foo_id foo_name 1 A 1 B 2 C
pour ça:
foo_id foo_name 1 AB 2 C
Réponses:
SELECT id, GROUP_CONCAT(name SEPARATOR ' ') FROM table GROUP BY id;
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
À partir du lien ci-dessus GROUP_CONCAT
,: Cette fonction renvoie un résultat de chaîne avec les valeurs non NULL concaténées d'un groupe. Il renvoie NULL s'il n'y a pas de valeurs non NULL.
SELECT id, GROUP_CONCAT( string SEPARATOR ' ') FROM table GROUP BY id
Plus de détails ici .
À partir du lien ci-dessus GROUP_CONCAT
,: Cette fonction renvoie un résultat de chaîne avec les valeurs non NULL concaténées d'un groupe. Il renvoie NULL s'il n'y a pas de valeurs non NULL.
SELECT id, GROUP_CONCAT(name SEPARATOR ' ') FROM table GROUP BY id;
: - Dans MySQL, vous pouvez obtenir les valeurs concaténées des combinaisons d'expression. Pour éliminer les valeurs en double, utilisez la clause DISTINCT . Pour trier les valeurs dans le résultat, utilisez la clause ORDER BY. Pour trier dans l'ordre inverse , ajoutez le mot clé DESC (décroissant) au nom de la colonne que vous triez dans la clause ORDER BY. La valeur par défaut est l'ordre croissant; cela peut être spécifié explicitement à l'aide du mot clé ASC. Le séparateur par défaut entre les valeurs d'un groupe est la virgule («,»). Pour spécifier un séparateur explicitement, utilisez SEPARATOR suivi de la valeur littérale de chaîne qui doit être insérée entre les valeurs de groupe. Pour éliminer complètement le séparateur, spécifiez SÉPARATEUR '' .
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
OU
mysql> SELECT student_name,
-> GROUP_CONCAT(DISTINCT test_score
-> ORDER BY test_score DESC SEPARATOR ' ')
-> FROM student
-> GROUP BY student_name;
Le résultat est tronqué à la longueur maximale donnée par la variable système group_concat_max_len, qui a une valeur par défaut de 1024 caractères, nous faisons donc d'abord:
SET group_concat_max_len=100000000;
puis, par exemple:
SELECT pub_id,GROUP_CONCAT(cate_id SEPARATOR ' ') FROM book_mast GROUP BY pub_id
group_concat_max_len
config? Connexion / session actuelle, ou affectera-t-elle d'autres clients?
Excellentes réponses. J'ai également eu un problème avec NULLS et j'ai réussi à le résoudre en incluant un COALESCE à l'intérieur de GROUP_CONCAT. Exemple comme suit:
SELECT id, GROUP_CONCAT(COALESCE(name,'') SEPARATOR ' ')
FROM table
GROUP BY id;
J'espère que ceci aide quelqu'un d'autre