我的表产品包含字段:id(PK),title(UQ),价格,状态
我写了一个查询,如果表已有这样的标题
,应该更新行INSERT INTO product (title, price, `status`)
VALUES("Black boots", 222.18, 1)
ON DUPLICATE KEY UPDATE price = 125.00 AND `status` = 2
这只是一个产品的例子。但是,在运行此查询后,我收到的消息是查询已成功执行,但价格变为= 0.00(有时为1.00)且状态不会更改。我的问题是什么?
答案 0 :(得分:4)
要更新多个值,您需要使用逗号运算符:
INSERT INTO product (title, price, `status`)
VALUES("Black boots", 222.18, 1)
ON DUPLICATE KEY UPDATE price = 125.00, `status` = 2
答案 1 :(得分:0)
您还可以使用参数Values。这允许你INSERT / UPDATE多行一行
INSERT INTO product (title, price, `status`)
VALUES
("Black boots", 222.18, 1),
("Green boots", 111.22, 3)
ON DUPLICATE KEY UPDATE price = VALUES(price), `status` = VALUES(status);