gpt4 book ai didi

Mysql批量插入或更新,id为null时插入,否则更新

转载 作者:行者123 更新时间:2023-12-01 00:36:30 27 4
gpt4 key购买 nike

假设我有 table :

CREATE TABLE texts
(
id INT PRIMARY KEY AUTO_INCREMENT,
body TEXT
);

我想更新几个 id,并插入一些新的。如果 id 为空,我想插入,否则,我想更新。所以我想要这样的东西:

INSERT INTO OR UPDATE 
texts (id, body)
VALUES
(NULL, 'create new row'),
(NULL, 'create other new row'),
(1, 'update id 1'),
(2, 'update id 2'),
(3, 'update id 3');

如果匹配的 id 不存在,我想忽略更新,因为同时该行显然被删除了。

最佳答案

有一个声明INSERT ... ON DUPLICATE KEY UPDATE

INSERT INTO texts (id, body) VALUES(1, "body text") ON DUPLICATE KEY UPDATE    
body="body text"

如果你想跳过ID not null not exists in the table,也许你可以试试这个

INSERT INTO
texts (id, body)
VALUES
(NULL, 'create new row'),
(NULL, 'create other new row');

UPDATE texts SET
`body` = CASE
WHEN `id` = 1 THEN 'update id 1'
WHEN `id` = 2 THEN 'update id 2'
WHEN `id` = 3 THEN 'update id 3'
ELSE `body` END

WHERE `id`=1 OR `id`=2 OR `id`=3;

关于Mysql批量插入或更新,id为null时插入,否则更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48421116/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com