我可以根據 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”);
如果這不是用于此目的的正確方法,我應該如何構建此類查詢?
非常感謝您提前提供任何指導,
道格
uj5u.com熱心網友回復:
我假設重復鍵是 column 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;
查看簡化的演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/464316.html
上一篇:PDOExceptionERROR42000您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊以獲取正確的
