Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL wählt mit PHP mehrere IDs gleichzeitig aus

Ein einfacher Ansatz verwendet die Aggregation:

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

Die obige Abfrage ist sargable , was bedeutet, dass ein geeigneter Index den idSkill verwenden kann Säule. Erwägen Sie, diesen Index für zusätzliche Leistung hinzuzufügen:

CREATE INDEX idx ON skills (idUser, idSkill);

Bearbeiten:

Verwenden Sie diese Abfrage für 3 Elemente:

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