sql >> Database teknologi >  >> RDS >> Mysql

får værdier, der ikke findes i mysql-tabellen

Opret en midlertidig tabel med dine nøgler:

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

Brug derefter NOT IN:

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

Slip endelig din TEMP-tabel, hvis du skal:

DROP TABLE mykeys

REDIGER :Tilføjet SQLFiddle .

Hvis du bruger PostgreSQL, som understøtter EXCEPT operatør , og også VALUES sætning kan bruges til at oprette rækkesæt fra liste over værdier, der er en anden, nemmere måde at gøre dette på uden midlertidige tabeller (SQLFiddle ):

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


  1. Sådan viser du samlingen af ​​en database i MySQL

  2. pdo udarbejdede udsagn med jokertegn

  3. SQL-forespørgsel, hvor feltet IKKE INDEHOLDER $x

  4. Excel download sidder fast 188kb