Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL seleciona vários id ao mesmo tempo com php


Uma abordagem simples usa agregação:
SELECT idUser
FROM skills
WHERE idSkill IN (4, 9)
GROUP BY idUser
HAVING MIN(idSkill) <> MAX(idSkill);

A consulta acima é sargável , o que significa que um índice apropriado pode usar o idSkill coluna. Considere adicionar este índice para aumentar o desempenho:
CREATE INDEX idx ON skills (idUser, idSkill);

Editar:

Use esta consulta para 3 itens:
SELECT idUser
FROM skills
WHERE idSkill IN (2, 4, 9)
GROUP BY idUser
HAVING COUNT(DISTINCT idSkill) = 3;