2017-10-05 12 views
1

J'ai une table qui ressemble à ceci:MYSQL: Sélectionnez Identifications de table où plusieurs valeurs correspondent à une seule colonne au moins deux fois

+----+--------------------------------+ 
| id | slug       | 
+----+--------------------------------+ 
| 1 | gift       | 
| 1 | psychological-manipulation  | 
| 1 | christmas      | 
| 1 | giving       | 
| 1 | the-town-santa-forgot   | 
| 1 | santa-claus     | 
| 1 | mp3       | 
| 1 | christmas      | 
| 2 | entertainment-culture   | 
| 2 | christmas      | 
| 2 | culture      | 
| 2 | literature      | 
| 2 | christmas-music    | 
| 2 | christmas-window    | 
| 2 | broadcasting-nec    | 
| 2 | how-the-grinch-stole-christmas | 
| 2 | the-polar-express    | 
| 2 | banker       | 
| 2 | christmas      | 
| 2 | potter       | 
| 2 | christmas-eve     | 
| 2 | bailey       | 
| 2 | its-a-wonderful-life   | 
| 2 | the-polar-express    | 
| 2 | disney       | 
| 2 | tim-burton      | 
| 2 | a-christmas-carol    | 
| 2 | the-nightmare-before-christmas | 
| 2 | chuck-jones     | 
+----+--------------------------------+ 

Je veux obtenir ids uniques de la table où au moins deux d'une liste de limaces correspondent pour un identifiant donné.

Par exemple permet de dire que j'ai les valeurs limaces de:

  • cadeau
  • noël
  • donnant

Je veux tous les ids uniques qui ont un enregistrement correspondant pour au moins 2 d'entre eux.

-à-dire seulement un identifiant qui avait à la fois le don et limaces de Noël ou le don et limaces de Noël ou le don et donner limaces, etc ...

Répondre

2

Vous pouvez utiliser le modificateur distinct pour compter le nombre de différentes limaces par ID:

SELECT id 
FROM  mytable 
WHERE slug IN ('gift', 'christmass', 'giving') 
GROUP BY id 
HAVING COUNT(DISTINCT slug) >= 2 
+1

Trop facile! :) Merci beaucoup. –