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

trên bản cập nhật khóa trùng lặp với một điều kiện?

Một tùy chọn khác:

INSERT INTO tbl (count, otherID) 
  VALUES (2, 'a') 
ON DUPLICATE KEY UPDATE 
  count = GREATEST(VALUES(count), count) ;

Cảnh báo: Điều này sẽ không thành công nếu giá trị được truyền cho countNULL (thay vì 2 ). Nó sẽ cập nhật cột với NULL . Vì vậy, tốt hơn là sử dụng IF() hoặc CASE mệnh đề.

Trừ khi bạn thích (ở đó sang trọng ...):

ON DUPLICATE KEY UPDATE 
  count = GREATEST(COALESCE(VALUES(count), count), count) ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dữ liệu MySQL INSERT không được lưu trữ trong db thích hợp, chỉ tạm thời?

  2. Kết nối với Cơ sở dữ liệu MySQL trong .NET

  3. Cây đặt hàng trước MySql đã sửa đổi để tạo url

  4. Lỗi dữ liệu kết thúc sớm với PHP

  5. dịch vụ MySQL trên máy tính cục bộ bắt đầu và sau đó dừng lại