sql >> Database teknologi >  >> RDS >> Mysql

mysql opdatere flere rækker, hver med sine egne værdier, med en CASE-sætning

Det lyder som om du leder efter noget som dette:

UPDATE tbl_accounts
SET nation_id =
     CASE id_account
     WHEN 3 THEN 3331
     WHEN 5 THEN 5551
     ELSE nation_id
     END,
group_id =
     CASE id_account
     WHEN 3 THEN 3332
     WHEN 5 THEN 5552
     ELSE group_id
     END

Men at lave separate opdateringer er en fornuftig løsning i denne situation. Ovenstående forespørgsel kræver, at hver række i tabellen kontrolleres for at se, om den matcher betingelsen. Hvis du har et indeks på id_account (og du formentlig gør, som det ser ud til at være den primære nøgle), så vil det være meget hurtigt at opdatere en enkelt række.

UPDATE tbl_accounts SET nation_id = 3331, groupid = 3332 WHERE id_account = 3
UPDATE tbl_accounts SET nation_id = 5551, groupid = 5552 WHERE id_account = 5



  1. PHP gør komma til en <br />

  2. MYSQL ind i outfil adgang nægtet - men min bruger har ALT adgang.. og mappen er CHMOD 777

  3. Django admin MySQL langsom INNER JOIN

  4. TILMELD ydelsesudgaven MySQL