union用法 - || mysql




在一個SQL查詢中更新多行的多個列 (2)

你也可以破解插入操作:

INSERT INTO mytable (id, a, b, c)
VALUES (1, 'a1', 'b1', 'c1'),
(2, 'a2', 'b2', 'c2'),
(3, 'a3', 'b3', 'c3'),
(4, 'a4', 'b4', 'c4'),
(5, 'a5', 'b5', 'c5'),
(6, 'a6', 'b6', 'c6')
ON DUPLICATE KEY UPDATE id=VALUES(id),
a=VALUES(a),
b=VALUES(b),
c=VALUES(c)

我想在一個查詢中為多行設置多個列,但到目前為止沒有運氣。

這是我的表的樣子

表:用戶

我想在user_id IN(3,4,5)上設置'ext_id',並且在同一行上設置ext_flag = Y和admin_role = admin。

結果表如下所示

我的查詢看起來像這樣,但由於對SQL語法不熟悉,我正在發生錯誤。

update user
set ext_flag = 'Y', admin_role = 'admin', ext_id = 
case 
when user_id = 2 then 345
when user_id = 4 then 456
when user_id = 5 then 789
end

我有多個列的SET語法很難。


嘗試這個

 update user
 set ext_flag = 'Y', admin_role = 'admin', ext_id = 
 case 
 when user_id = 2 then 345
 when user_id = 4 then 456
 when user_id = 5 then 789
 end
 **WHERE user_id  in (2,4,5)**




database-design