Spesso mi sono trovato a dover modificare molte righe di una tabella, ognuna con valori differenti, e non avevo altro modo se non fare un ciclo di singole query update.
UPDATE table SET campo = nuovoValore1 WHERE id = idRiga1 UPDATE table SET campo = nuovoValore2 WHERE id = idRiga2 UPDATE table SET campo = nuovoValore3 WHERE id = idRiga3 ...
Poi per fortuna ho scoperto una piccola estensione fatta da mysql all’sql : la clausola on duplicate key update.
INSERT INTO table (id, campo) VALUES(idRiga1, nuovoValore1), (idRiga2, nuovoValore2), (idRiga3, nuovoValore3) ON DUPLICATE KEY UPDATE campo=VALUES(campo)
Così facendo con un unica query si possono modificare molte righe in maniera mirata.
Chiaramente funziona solo se tra i campi c’è una chiave primaria e esiste già un record con tale chiave; se la chiave primaria non è duplicata inserirà una nuova riga.
Per qualsiasi dubbio guardare le reference.