Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich MySQL-Einträge massenhaft mit bedingten Werten mithilfe von CASE?
In MySQL können Sie Tabelleneinträge basierend auf bestimmten Bedingungen mithilfe der CASE-Anweisung aktualisieren. So geht's:
Sie haben die folgende Abfrage:
update ae44 set Price = Case when ID = 'AT259793380' then '500' when ID = 'AT271729590' then '600' when ID = 'AT275981020' then '700' end case
Ihr Ziel ist es, die Angebotspreise basierend auf massenhaft zu aktualisieren entsprechenden IDs. Die Abfrage liefert jedoch nicht die beabsichtigten Ergebnisse.
Um die Abfrage zu beheben, müssen Sie die CASE-Anweisung ordnungsgemäß verwenden. Hier ist die korrekte Syntax:
UPDATE ae44 SET price = CASE WHEN ID = 'AT259793380' THEN '500' WHEN ID = 'AT271729590' THEN '600' WHEN ID = 'AT275981020' THEN '700' END
Beachten Sie, dass diese Abfrage die Preise für Datensätze mit anderen IDs auf NULL aktualisiert.
Wenn Sie möchten Um nur die IDs aus Ihrer Liste zu aktualisieren und Nullaktualisierungen auszuschließen, können Sie die folgende Abfrage verwenden:
UPDATE ae44 JOIN ( SELECT 'AT259793380' AS oldval, '500' AS newval UNION ALL SELECT 'AT271729590' AS oldval, '600' AS newval UNION ALL SELECT 'AT275981020' AS oldval, '700' AS newval ) q ON ae44.id = q.oldval SET price = q.newval
Diese Abfrage wird nur aktualisiert die Preise für die IDs, die in der temporären Tabelle angegeben sind, die mit der UNION ALL-Anweisung erstellt wurde.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich MySQL-Einträge massenhaft mit bedingten Werten mithilfe von CASE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!