我有这样简单的表格:
+----------+---------------+-------------+
| ID (int) | KEY (varchar) | VALUE (int) |
+----------+---------------+-------------+
| 1 | asdf | 100 |
| 2 | fdsa | 321 |
| 3 | ecda | 211 |
+----------+---------------+-------------+
Run Code Online (Sandbox Code Playgroud)
我想更新行,KEY = 'something'但如果没有KEY = 'something'我想要INSERT新行的行:
+----------+---------------+-------------+
| ID (int) | KEY (varchar) | VALUE (int) |
+----------+---------------+-------------+
| 1 | asdf | 100 |
| 2 | fdsa | 321 |
| 3 | ecda | 211 |
| 4 | something | 200 |
+----------+---------------+-------------+
Run Code Online (Sandbox Code Playgroud)
只有一个查询可以吗?
你可以利用 ON DUPLICATE KEY UPDATE
INSERT INTO yourtable (`id`, `key`, `value`) VALUES (4, 'something', 200)
ON DUPLICATE KEY UPDATE `value` = 200;
Run Code Online (Sandbox Code Playgroud)
key 列应该有UNIQUE索引
是的,这很简单.
这就是你要找的东西:
IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
INSERT INTO Table1 VALUES (...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13824 次 |
| 最近记录: |