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

MySQL Chèn nếu điều kiện

Bạn có thể làm như sau:

insert into cats_rel(cat_id, post_id)
    select 11, 32
    where not exists (select 1 from cats_rel where cat_id = 11 and post_id = 32);

CHỈNH SỬA:

Ối. Điều đó ở trên không hoạt động trong MySQL vì nó thiếu from mệnh đề (mặc dù hoạt động trong nhiều cơ sở dữ liệu khác). Trong mọi trường hợp, tôi thường viết điều này đặt các giá trị trong một truy vấn con, vì vậy chúng chỉ xuất hiện trong truy vấn một lần:

insert into cats_rel(cat_id, post_id)
    select toinsert.cat_id, toinsert.post_id
    from (select 11 as cat_id, 32 as post_id) toinsert
    where not exists (select 1
                      from cats_rel cr
                      where cr.cat_id = toinsert.cat_id and cr.post_id = toinsert.post_id
                     );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. vi phạm ràng buộc php Lỗi 1452

  2. Làm cách nào để thêm vào mỗi thẻ liên kết (a href) một thuộc tính rel với sự trợ giúp của php?

  3. Phương thức đăng nhập xác thực mã thông báo cookie

  4. Không thể truy cập MySQL sau khi nó tự động tạo mật khẩu tạm thời

  5. Làm cách nào để kết nối với cơ sở dữ liệu MySQL từ iPhone?