263 votes

MySQL DISTINCT sur un GROUP_CONCAT()

Je fais SELECT GROUP_CONCAT(categories SEPARATOR ' ') FROM table . Exemple de données ci-dessous :

categories
----------
test1 test2 test3
test4
test1 test3
test1 test3

Cependant, j'obtiens test1 test2 test3 test4 test1 test3 et je voudrais obtenir test1 test2 test3 test4 dos. Des idées ?

Merci beaucoup !

14voto

Sainath Points 121
SELECT
  GROUP_CONCAT(DISTINCT (category))
FROM (
  SELECT
    SUBSTRING_INDEX(SUBSTRING_INDEX(tableName.categories, ' ', numbers.n), ' ', -1) category
  FROM
    numbers INNER JOIN tableName
    ON LENGTH(tableName.categories)>=LENGTH(REPLACE(tableName.categories, ' ', ''))+numbers.n-1
  ) s;   

Cela renverra des valeurs distinctes comme : test1,test2,test4,test3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X