Nếu bạn muốn thực hiện việc này trong một câu lệnh duy nhất (nghe giống như những gì bạn muốn), tôi khuyên bạn nên sử dụng INSERT ... ON DUPLICATE KEY UPDATE
cú pháp, như sau:
INSERT INTO table (id, someothervalue) VALUES (1, 'hi mom')
ON DUPLICATE KEY UPDATE someothervalue = 'hi mom';
INSERT
ban đầu câu lệnh sẽ thực thi nếu không có bản ghi hiện có với giá trị khóa được chỉ định (khóa chính hoặc duy nhất). Nếu bản ghi đã tồn tại, UPDATE
sau câu lệnh (someothervalue = 3
) được thực thi.
Điều này được hỗ trợ trong tất cả các phiên bản của MySQL. Để biết thêm thông tin, hãy xem trang Hướng dẫn Tham khảo MySQL cho INSERT ... ON DUPLICATE KEY UPDATE