Cố gắng sử dụng INSERT ... ON DUPLICATE KEY UPDATE
Nếu bạn chỉ định CẬP NHẬT KHÓA DUPLICATE và một hàng được chèn vào sẽ gây ra giá trị trùng lặp trong chỉ mục DUY NHẤT hoặc KHÓA CHÍNH, MySQL sẽ thực hiện CẬP NHẬT hàng cũ.
Ví dụ:nếu cột a được khai báo là UNIQUE và chứa giá trị 1, hai câu lệnh sau có tác dụng tương tự:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
UPDATE table SET c=c+1 WHERE a=1;
(Các hiệu ứng không giống nhau đối với một bảng trong đó a là cột tăng tự động. Với cột tăng tự động, một INSERT
câu lệnh tăng giá trị tăng tự động nhưng UPDATE
không.)
Mệnh đề ON DUPLICATE KEY UPDATE có thể chứa nhiều phép gán cột, được phân tách bằng dấu phẩy.
Với CẬP NHẬT KHÓA KÉP BẬT, giá trị hàng bị ảnh hưởng trên mỗi hàng là 1 nếu hàng được chèn dưới dạng hàng mới và 2 nếu hàng hiện có được cập nhật.
Hy vọng điều này sẽ giúp ích.