2013-11-25 74 views
0

我有一個SQL查詢,看起來像這樣(WordPress選項)。重複的MySQL - 插入但不更新

INSERT INTO wp_options (option_name, option_value, autoload) VALUES 
(
    'category_children', 
    'a value', 
    'yes' 
), 
(
    'test_options', 
    'testing', 
    'yes' 
) 
ON DUPLICATE KEY UPDATE 
    option_name=option_name, 
    option_value=option_value, 
    autoload=autoload 
; 

是什麼呢

它正確地插入值,但如果我有不同的值再次運行它,我希望它更新值到新的。

什麼它不做

它不會更新值,我第二次運行查詢。我改變了數值。我得到SQL沒有錯誤。 0行受到影響。

它應該以

如果我改變「值」爲「其他值」,並運行查詢,如果category_children已經存在的價值應該被替換。

問題

我我做錯了什麼?我使用mysql 5.5.24。

+0

也許複製http://stackoverflow.com/questions/2714587/mysql-on-duplicate-key-update-for-multiple-的行 - 插入式單查詢 –

回答

3

更新option_nameoption_name將不起作用。您可以使用VALUES語法更新到從插入值:

INSERT INTO wp_options (option_name, option_value, autoload) VALUES 
(
    'category_children', 
    'a value', 
    'yes' 
), 
(
    'test_options', 
    'testing', 
    'yes' 
) 
ON DUPLICATE KEY UPDATE 
    option_name=VALUES(option_name), 
    option_value=VALUES(option_value), 
    autoload=VALUES(autoload) 
; 
相關問題