我可以根据以下查询在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;