Skapa en tillfällig tabell med dina nycklar:
CREATE TEMPORARY TABLE mykeys (`key` INT);
INSERT INTO mykeys VALUES (1),(2),(3),(4),(5);
Använd sedan NOT IN:
SELECT `key`
FROM mykeys
WHERE `key` NOT IN (SELECT `key` FROM mytable)
Slutligen, släpp din TEMP-tabell om du måste:
DROP TABLE mykeys
REDIGERA :Lade till SQLFiddle .
Om du använder PostgreSQL som stöder EXCEPT
operatör
, och även VALUES
uttalande kan användas för att skapa raduppsättningar från värdelistan, det finns ett annat, enklare sätt att göra detta utan temporära tabeller (SQLFiddle
):
VALUES (1),(2),(3),(4),(5)
EXCEPT
SELECT key FROM mytable