MySQL重复 - 插入但不更新

时间:2013-11-25 10:22:14

标签: mysql database insert sql-update on-duplicate-key

我有一个看起来像这样的SQL查询(WordPress选项)。

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。

1 个答案:

答案 0 :(得分:3)

option_name更新为option_name将无效。您可以使用VALUES语法更新为insert:

中的值
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)
;