J'essaie de définir plusieurs colonnes pour plusieurs lignes dans une seule requête, mais jusqu'à présent, pas de chance.
Voici à quoi ressemble ma table
Tableau: utilisateur
Je voudrais définir "ext_id" sur user_id IN (3,4,5) et également définir ext_flag = Y et admin_role = admin sur les mêmes lignes.
le tableau résultant ressemble à ceci
Ma requête ressemble à ceci, mais je reçois des erreurs en raison de la méconnaissance de la syntaxe 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
J'ai du mal en syntaxe SET avec plusieurs colonnes.
essaye ça
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)**
Vous pouvez également pirater l'opération d'insertion:
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)