web-dev-qa-db-fra.com

MySQL SELECT DISTINCT plusieurs colonnes

Disons que j'ai des colonnes a, b c, d dans une table dans une base de données MySQL. Ce que j'essaie de faire est de sélectionner les valeurs distinctes de TOUTES ces 4 colonnes de mon tableau (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 de ceux qui ont travaillé. Quelqu'un peut aider ici?

Je vous remercie

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

66
user765368

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
45
Nesim Razon

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

select a, b from mytable group by a, b

vous donnera toutes les combinaisons.

58
ncastro

Deviner les résultats que vous voulez, alors c’est peut-être la requête que vous voulez, puis

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
19
Adrian Cornish

Un autre moyen simple de le faire est avec concat()

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

Cela donnera des valeurs DISTINCT dans 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
8
T. Brian Jones

Vos deux questions sont correctes et devraient vous donner la bonne réponse.

Je suggère la requête suivante pour résoudre votre problème.

SELECT DISTINCT a,b,c,d,count(*) Count FROM my_table GROUP BY a,b,c,d
order by count(*) desc

C'est le champ add count (*). Cela vous donnera une idée du nombre de lignes éliminées à l’aide de la commande group.

8
Hammad Khan