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

Abrufen von Werten, die in der MySQL-Tabelle nicht vorhanden sind

Erstellen Sie eine temporäre Tabelle mit Ihren Schlüsseln:

CREATE TEMPORARY TABLE mykeys (`key` INT);
INSERT INTO mykeys VALUES (1),(2),(3),(4),(5);

Verwenden Sie dann NOT IN:

SELECT `key`
FROM mykeys
WHERE `key` NOT IN (SELECT `key` FROM mytable)

Löschen Sie schließlich Ihre TEMP-Tabelle, wenn Sie müssen:

DROP TABLE mykeys

BEARBEITEN :SQLFiddle hinzugefügt .

Wenn Sie PostgreSQL verwenden, das EXCEPT unterstützt Betreiber , und auch VALUES -Anweisung verwendet werden kann, um Zeilengruppen aus einer Werteliste zu erstellen, gibt es einen anderen, einfacheren Weg, dies ohne temporäre Tabellen zu tun (SQLFiddle ):

VALUES (1),(2),(3),(4),(5)
EXCEPT
SELECT key FROM mytable