2011-07-23 12 views
10

複数の行を挿入するときに "ON DUPLICATE KEY UPDATE"を使用してMySqlのフィールドを増やす方法はありますか? 1行分の複数の行を挿入するときに "ON DUPLICATE KEY UPDATE"を使用してMySqlのフィールドを増やす方法はありますか?

INSERT INTO table 
    (a, counter_elem) 
VALUES 
    (1, 1) 
ON DUPLICATE KEY UPDATE counter_elem = counter_elem+1; 

複数行の場合:

INSERT INTO table 
    (a, counter_elem) 
VALUES 
    (1, 1), 
    (2, 1) 
ON DUPLICATE KEY UPDATE counter_elem = ?; 

これは動作しません:

counter_elem = VALUES(counter_elem)+1 

答えて

16

まったく同じ方法!

INSERT INTO table 
    (a, counter_elem) 
VALUES 
    (1, 1), 
    (2, 1) 
ON DUPLICATE KEY UPDATE counter_elem = counter_elem + 1; 

問題はありません。

+0

あなたはそうです。私は質問をする前にそれを試しましたが、クラスのバグのために間違ったインクリメントを生成しました。今はバグを修正しています。 – Darm

関連する問題