更新,如果存在,则插入,但使用非唯一列

时间:2013-01-11 17:51:41

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

我知道当我想要更新行时,我可以使用“ON DUPLICATE KEY UPDATE”,否则插入。 但在我的情况下,我想基于非唯一键进行更新。

E.g:我有一个包含3列的表:A,B和C.它们共同形成唯一键。
现在我想更新行,如果B和C的值匹配,或者插入一个新行。

这可以在没有多个查询的情况下在MySQL中完成。

1 个答案:

答案 0 :(得分:0)

如果有唯一键,您可以使用REPLACE INTO。如果您没有这些唯一值,则需要使用两个查询。查询1是选择更新,查询2是更新(如果返回的行数是> 0)或插入(如果没有返回行)