Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL sélectionne plusieurs identifiants en même temps avec php

Une approche simple utilise l'agrégation :

SELECT idUser
FROM skills
WHERE idSkill IN (4, 9)
GROUP BY idUser
HAVING MIN(idSkill) <> MAX(idSkill);

La requête ci-dessus est sargable , ce qui signifie qu'un index approprié peut utiliser le idSkill colonne. Envisagez d'ajouter cet index pour des performances accrues :

CREATE INDEX idx ON skills (idUser, idSkill);

Modifier :

Utilisez cette requête pour 3 éléments :

SELECT idUser
FROM skills
WHERE idSkill IN (2, 4, 9)
GROUP BY idUser
HAVING COUNT(DISTINCT idSkill) = 3;