插入到对每一行进行自定义更新的重复键查询中



我可以根据以下查询在MySQL服务器上插入/更新数据。

INSERT INTO users (user_id, books) 
VALUES 
(1, “book1, book2”), 
(2, “book3, book4”) 
ON DUPLICATE KEY UPDATE books=“book1, book2”;

然而,是否有一种方法可以在UPDATE语句之后为每行设置多个图书列值?类似下面的内容,但可以工作:)

INSERT INTO users (user_id, books) 
VALUES 
(1, “book1, book2”), 
(2, “book3, book4”) 
ON DUPLICATE KEY UPDATE books 
VALUES (“book1, book2”), (“book3, book4”);

如果这不是用于此目的的正确方法,我应该如何构建这样的查询?

非常感谢您的指导,

Doug

我假设重复键是列user_id

您可以使用CASE表达式:

INSERT INTO users (user_id, books) VALUES 
(1, 'book1, book2'), 
(2, 'book3, book4') 
ON DUPLICATE KEY UPDATE 
books = CASE user_id
WHEN 1 THEN 'book10, book20'
WHEN 2 THEN 'book30, book40'
END;

最新更新