如果存在则更新,否则插入一个查询中[重复]

2023-12-25

我有这样的简单表:

+----------+---------------+-------------+
| ID (int) | KEY (varchar) | VALUE (int) |
+----------+---------------+-------------+
|        1 | asdf          |         100 |
|        2 | fdsa          |         321 |
|        3 | ecda          |         211 |
+----------+---------------+-------------+

我想更新行KEY = 'something'但如果没有行在哪里KEY = 'something'我想要INSERT新行:

+----------+---------------+-------------+
| ID (int) | KEY (varchar) | VALUE (int) |
+----------+---------------+-------------+
|        1 | asdf          |         100 |
|        2 | fdsa          |         321 |
|        3 | ecda          |         211 |
|        4 | something     |         200 |
+----------+---------------+-------------+

是否可以只在一个查询中进行?


您可以利用ON DUPLICATE KEY UPDATE

INSERT INTO yourtable (`id`, `key`, `value`) VALUES (4, 'something', 200)
ON DUPLICATE KEY UPDATE `value` = 200; 

key列上应该有唯一索引

SQLFiddle http://sqlfiddle.com/#!2/ce362/1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果存在则更新,否则插入一个查询中[重复] 的相关文章

随机推荐