Créez une table temporaire avec vos clés :
CREATE TEMPORARY TABLE mykeys (`key` INT);
INSERT INTO mykeys VALUES (1),(2),(3),(4),(5);
Ensuite, utilisez NOT IN :
SELECT `key`
FROM mykeys
WHERE `key` NOT IN (SELECT `key` FROM mytable)
Enfin, supprimez votre table TEMP si vous devez :
DROP TABLE mykeys
MODIFIER :Ajout de SQLFiddle .
Si vous utilisez PostgreSQL qui prend en charge EXCEPT
opérateur
, et aussi VALUES
peut être utilisée pour créer un ensemble de lignes à partir d'une liste de valeurs, il existe un autre moyen plus simple de le faire sans tables temporaires (SQLFiddle
):
VALUES (1),(2),(3),(4),(5)
EXCEPT
SELECT key FROM mytable