Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL seleziona più ID contemporaneamente con php

Un semplice approccio utilizza l'aggregazione:

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

La query precedente è sargable , il che significa che un indice appropriato può utilizzare idSkill colonna. Prendi in considerazione l'aggiunta di questo indice per aumentare il rendimento:

CREATE INDEX idx ON skills (idUser, idSkill);

Modifica:

Usa questa query per 3 elementi:

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