Dans les requêtes de base de données, la fonction GROUP_CONCAT() est fréquemment utilisée pour concaténer les valeurs de plusieurs lignes en une seule chaîne . Cependant, la chaîne résultante peut parfois contenir des valeurs en double. Pour résoudre ce problème, MySQL fournit l'attribut DISTINCT dans GROUP_CONCAT().
Considérez le tableau suivant avec une colonne « catégories » :
categories |
---|
test1 test2 test3 |
test4 |
test1 test3 |
test1 test3 |
Si nous exécutons la requête suivante :
SELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM table;
Nous obtiendrons ce qui suit résultat :
test1 test2 test3 test4 test1 test3
Cependant, nous pouvons vouloir exclure les valeurs en double, ce qui entraîne :
test1 test2 test3 test4
Pour y parvenir, nous avons simplement ajoutez l'attribut DISTINCT à la fonction GROUP_CONCAT() :
SELECT GROUP_CONCAT(DISTINCT categories ORDER BY categories ASC SEPARATOR ' ') FROM table;
En spécifiant DISTINCT, MySQL va éliminez les valeurs en double de la chaîne concaténée, ce qui donne le résultat souhaité. Notez que la clause ORDER BY garantit que les valeurs concaténées sont triées par ordre croissant.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!