2010-02-08 14 views
5

Jak mogę użyć ON DUPLICATE UPDATE z wieloma wartościami INSERT?Dodatek warunkowy mysql przy duplikowaniu aktualizacji - wiele rekordów

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

Jaki jest Twój zamierzony efekt? Mogę tylko dostać MySQL, aby zezwolić na '(1,5,6) NA DUPLICATE KEY UPDATE key_id = key_id + 1', ale przy wykonaniu mam tylko jeden wiersz w tabeli, wartości:' 2, 2, 3'. –

+0

dobrze SQL jest przykładem, ale spodziewanym rezultatem byłoby uruchomienie jednej kwerendy, która zostanie wstawiona, jeśli nowa, aktualizacja, jeśli duplikat dla wielu wartości. więc jeśli key_id 1, 3 i 5 są już w DB i uruchamiam INSERT dla 2, 3, 4 i 6. 2, 4 i 6 powinny wstawiać, a 3 powinny się aktualizować, ponieważ był duplikatem –

Odpowiedz

11

Nie mogę spróbować go teraz, ale nie można użyć tej składni

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

z manual?

Guess składnia będzie wtedy wyglądać tak:

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

Musiałem tego nie zauważyć, thnx –

Powiązane problemy