104 votes

MySQL SELECT DISTINCT plusieurs colonnes

Disons que j'ai des colonnes a, b c, d dans une table d'une base de données MySQL. Ce que j'essaie de faire, c'est de sélectionner les valeurs distinctes de TOUTES ces 4 colonnes dans ma table (uniquement les valeurs distinctes). J'ai essayé des choses comme :

SELECT DISTINCT a,b,c,d FROM my_table;
SELECT DISTINCT a,b,c,d FROM my_table GROUP BY a,b,c,d;

Aucun d'entre eux n'a fonctionné. Quelqu'un peut-il m'aider ?

Merci.

NOTE Je veux les valeurs distinctes des colonnes a, b, c d séparément. Pas la combinaison distincte de valeurs

118voto

Nicolas Castro Points 1054

Je sais que la question est trop ancienne, de toute façon :

SELECT a, b
FROM mytable
GROUP BY a, b;

Vous obtiendrez ainsi toutes les combinaisons possibles.

60voto

Nesim Razon Points 4846

Cela peut-il aider ?

select 
(SELECT group_concat(DISTINCT a) FROM my_table) as a,
(SELECT group_concat(DISTINCT b) FROM my_table) as b,
(SELECT group_concat(DISTINCT c) FROM my_table) as c,
(SELECT group_concat(DISTINCT d) FROM my_table) as d

26voto

Kelhen Points 221

Une autre façon simple de le faire est d'utiliser concat()

SELECT DISTINCT(CONCAT(a,b)) AS cc FROM my_table GROUP BY (cc);

22voto

Adrian Cornish Points 8651

Je devine les résultats que vous voulez, alors peut-être que c'est la requête que vous voulez.

SELECT DISTINCT a FROM my_table
UNION 
SELECT DISTINCT b FROM my_table
UNION
SELECT DISTINCT c FROM my_table
UNION
SELECT DISTINCT d FROM my_table

11voto

T. Brian Jones Points 2144

Cela donnera des valeurs DISTINCTES sur toutes les colonnes :

SELECT DISTINCT value
FROM (
    SELECT DISTINCT a AS value FROM my_table
    UNION SELECT DISTINCT b AS value FROM my_table
    UNION SELECT DISTINCT c AS value FROM my_table
) AS derived

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