sql >> Databasteknik >  >> RDS >> Mysql

få värden som inte finns i mysql-tabellen

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


  1. Hur man begränsar SHOW TABLES-frågan

  2. Python, konvertera 4-byte char för att undvika MySQL-fel. Felaktigt strängvärde:

  3. Returnerar JSON fungerar inte korrekt

  4. Användbara tips för att felsöka vanliga fel i MySQL