2010-02-08 38 views
5

Làm cách nào để sử dụng ON DUPLICATE UPDATE với một giá trị INSERT nhiều?chèn điều kiện mysql trên bản cập nhật trùng lặp - nhiều bản ghi

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9); 
+0

kết quả dự định của bạn là gì? Tôi chỉ có thể nhận được MySQL để cho phép '(1,5,6) TRÊN KHIẾU NẠI KEY UPDATE key_id = key_id + 1', nhưng trên thực thi tôi chỉ có một hàng trong bảng, các giá trị:' 2, 2, 3'. –

+0

cũng là một ví dụ nhưng kết quả mong đợi sẽ là chạy một truy vấn có thể chèn nếu mới, cập nhật nếu trùng lặp cho nhiều giá trị. vì vậy nếu key_id 1, 3 và 5 đã có trong DB và tôi chạy INSERT cho 2, 3, 4 và 6. 2,4 và 6 nên chèn và 3 nên cập nhật vì nó là một bản sao –

Trả lời

11

tôi không thể thử nó ngay bây giờ, nhưng bạn không thể sử dụng cú pháp này

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) 
    ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); 

từ manual?

Đoán cú pháp của bạn sau đó sẽ trông như thế này:

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9) 
ON DUPLICATE KEY 
    UPDATE field1=VALUES(field1), field2=VALUES(field2); 
+0

Tôi phải bỏ lỡ điều này, thnx –

Các vấn đề liên quan