Mysql
 sql >> Baza danych >  >> RDS >> Mysql

pobieranie wartości, które nie istnieją w tabeli mysql

Utwórz tabelę tymczasową ze swoimi kluczami:

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

Następnie użyj NOT IN:

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

Na koniec upuść tabelę TEMP, jeśli musisz:

DROP TABLE mykeys

EDYTUJ :dodano SQLFiddle .

Jeśli używasz PostgreSQL, który obsługuje EXCEPT operator , a także VALUES Instrukcja może być użyta do stworzenia zestawu wierszy z listy wartości, istnieje inny, łatwiejszy sposób na zrobienie tego bez tabel tymczasowych (SQLFiddle ):

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Znajomy znajomego w PHP/MySQL?

  2. MySqlDb rzuca Operand powinien zawierać 1 kolumnę (kolumny) w instrukcji insert ignore

  3. Nie mogę zainstalować mysql gem na OS X

  4. Czym jest sól w odniesieniu do MYSQL sha1?

  5. Podciąg MySQL między dwoma ciągami