如果值不同,则更新mysql行或创建尚未添加的新行

时间:2017-12-06 22:03:33

标签: mysql

出于某种原因,这不是我的意思,在没有两个条件的情况下,我没有看到这个具体的问题。我想更新my_table以了解以下两个条件:

  1. 如果主键vin相同且价格不同。 - 或 -
  2. 如果没有vin则只需创建一个新行
  3. 两个示例更新之前和之后的示例:

    enter image description here

    在这个exable vin 12345存在所以只是价格更新因为它不同,在另一个例子中vin 55555不在表中所以它被创建。

1 个答案:

答案 0 :(得分:2)

MySql支持条件插入/更新 - 检查https://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html

INSERT INTO my_table (vin,price) VALUES (12345, 7777)
    ON DUPLICATE KEY UPDATE price=7777;