2017-10-05 11 views
0

Je voudrais faire une requête spécifiqueMySQL: Sélectionner toutes les lignes de sélection distinctes

select distinct name 
from tablename 

pour supprimer les doublons. Mais cela ne me donne que les noms. De 'select nom distinct de la table:' Je voudrais que toutes les colonnes sont revenus avec une condition where:

select * 
from tablename 
where value= 1 

J'ai essayé ceci:

select * 
from tablename 
where value = 1 and exists (select distinct name 
          from tablename) 

Malheureusement, il renvoie les mêmes données que:

select * 
from tablename 
where value = 1 

Ce qui signifie qu'il y a une faille fondamentale dans ma requête.

Quelqu'un pourrait-il m'aider avec ma requête? Merci d'avance.

+0

Ajoutez quelques exemples de données de table et le résultat attendu. Texte formaté, s'il vous plaît. (Pas images.) – jarlh

+0

avez-vous essayé d'utiliser un «groupe par»? Une agrégation est-elle requise? –

Répondre

0

Pouvez-vous essayer select field1, field2, field3 from tablename group by field2

+0

Cela ne supprime pas les doublons. Donc ça ne marche pas pour moi. Je dois supprimer toutes les lignes où la colonne "nom" a des doublons. –

+0

Pourriez-vous fournir un exemple de jeu de données, montrant ce que vous voulez, pour référence? –

0

Cette requête vous donnera l'identifiant où vous avez des doublons:

select distinct id 
from table1 
group by id 
having count(id)>1 

et vous pouvez mettre

having count(id)=1 

si vous voulez connaître les qui n'ont pas de doublons

+0

Cela ne retourne pas toutes les colonnes. Donc ça ne marche pas pour moi. Je dois supprimer toutes les lignes où la colonne "nom" a des doublons. –