Heim  >  Artikel  >  Datenbank  >  Wie aktualisiere ich Zeilen in MySQL mithilfe von CASE für die Wertzuweisung korrekt?

Wie aktualisiere ich Zeilen in MySQL mithilfe von CASE für die Wertzuweisung korrekt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-14 10:30:02186Durchsuche

How to Correctly Update Rows in MySQL Using CASE for Value Assignment?

Aktualisieren von Zeilen in MySQL mithilfe von CASE für die Wertzuweisung

Um bestimmte Zeilen in einer MySQL-Datenbank mithilfe der CASE WHEN-Anweisung zu aktualisieren , muss die korrekte Syntax eingehalten werden. Die bereitgestellte Abfrage, die versucht, Preise basierend auf ID-Werten zu aktualisieren, zeigt eine falsche Verwendung der CASE-Anweisung.

Um dieses Problem zu beheben, sollte die korrekte Aktualisierungsabfrage wie folgt lauten:

UPDATE ae44
SET price =
CASE
    WHEN ID = 'AT259793380' THEN
        '500'
    WHEN ID = 'AT271729590' THEN
        '600'
    WHEN ID = 'AT275981020' THEN
        '700'
END;

Beachten Sie in dieser korrigierten Abfrage Folgendes:

  • Die CASE WHEN-Anweisung ist ordnungsgemäß mit einzelnen WHEN-Klauseln strukturiert.
  • Die Zuweisung des neuen Werts erfolgt mithilfe der :=-Syntax.
  • Die Abfrage endet mit einem Semikolon (;).

Das Aktualisieren von Zeilen mithilfe der CASE-Anweisung kann nützlich sein, wenn unterschiedliche Werte basierend auf bestimmten Bedingungen zugewiesen werden. Es ist jedoch wichtig zu beachten, dass die bereitgestellte Abfrage die Preise für alle Datensätze aktualisiert, unabhängig von ihrer ID. Wenn das Ziel darin besteht, nur die in der Abfrage genannten spezifischen IDs zu aktualisieren, kann der folgende Ansatz verwendet werden:

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;

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Zeilen in MySQL mithilfe von CASE für die Wertzuweisung korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn