2011-07-16 83 views
0

這個查詢有問題,任何人都知道這個問題?MYSQL ON DUPLICATE KEY查詢問題

INSERT INTO options 
    (grouptogether) 
VALUES 
    ('0') 
WHERE userid = '2' ON DUPLICATE KEY UPDATE grouptogether = '0'; 

INSERT INTO options 
    (grouptogether) 
VALUES 
    ('0') 
ON DUPLICATE KEY UPDATE grouptogether = '0' 
WHERE userid = '2'; 

我試着移動where子句的兩種組合,但似乎沒有這樣做。

+0

[文件](http://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html) - - 在'ON DUPLICATE ...'語法中沒有'WHERE'子句。 –

+0

只是一個提示 - 你不想把單引號放在數值列的值周圍。 'userid = 2',而不是'userid ='2''。當您強制解釋器將其轉換爲正確類型時,字符串中的數字並不總是等於您期望的數字。 –

回答

0

INSERT查詢沒有WHERE條款。在INSERT INTO...ON DUPLICATE KEY UPDATE查詢中,被更新的行是發生密鑰衝突的行;您不需要通過WHERE子句來指定行。

你大概的意思做這樣的事情:

INSERT INTO options 
    (userid, grouptogether) 
VALUES 
    (2, '0') 
ON DUPLICATE KEY UPDATE grouptogether = VALUES(grouptogether) 
+0

謝謝你的訣竅! – Mark

相關問題