Mysql
 sql >> база данни >  >> RDS >> Mysql

получаване на стойности, които не съществуват в таблицата на mysql

Създайте временна таблица с вашите ключове:

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

След това използвайте NOT IN:

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

И накрая, махнете таблицата си TEMP, ако трябва:

DROP TABLE mykeys

РЕДАКТИРАНЕ :Добавен SQLPiddle .

Ако използвате PostgreSQL, който поддържа EXCEPT оператор , както и VALUES операторът може да се използва за създаване на набор от редове от списък със стойности, има друг, по-лесен начин да направите това без временни таблици (SQLPiddle ):

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. Преглед и качване на изображения с помощта на база данни PHP и MySQL

  2. Предаване на FieldName като параметър в MySQL Stored Procedure

  3. Грешка:Източникът на данни отхвърли установяване на връзка, съобщение от сървъра:Твърде много връзки

  4. Как да създадете „двустранен“ уникален индекс на две полета?

  5. SYSDATE() срещу NOW() в MySQL:Каква е разликата?