Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

nhận các giá trị không tồn tại trong bảng mysql

Tạo bảng tạm thời bằng các khóa của bạn:

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

Sau đó sử dụng NOT IN:

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

Cuối cùng, thả bảng TEMP của bạn nếu bạn phải:

Các phím của
DROP TABLE mykeys

CHỈNH SỬA :Đã thêm SQLFiddle .

Nếu bạn đang sử dụng PostgreSQL hỗ trợ EXCEPT nhà điều hành và cả VALUES câu lệnh có thể được sử dụng để tạo tập hợp hàng từ danh sách các giá trị, có một cách khác, dễ dàng hơn để thực hiện việc này mà không cần bảng tạm thời ( 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. Cách tạo cơ sở dữ liệu trong MySQL

  2. Làm cách nào để sử dụng câu lệnh IF trong truy vấn tham gia MySQL?

  3. Khóa chính đa cột MySQL

  4. Khởi động lại giao dịch trong MySQL sau khi bế tắc

  5. Tôi có vệ sinh / thoát hiểm đúng cách không?