/ / Aktualisieren Sie mehrere Tabellenzeilen in einer Spalte mit unterschiedlichen Werten - sql

Aktualisieren Sie mehrere Tabellenzeilen in einer Spalte mit unterschiedlichen Werten - sql

Ich habe mehrere Zeilen, die ich brauche, um Kundennamen zu aktualisieren und einzufügen. Wie kann ich dies in einer Abfrage tun, anstatt etwas wie die unten stehende Abfrage immer wieder mit unterschiedlichen Namen auszuführen?

UPDATE orders
SET cust_name = "Sue"
WHERE p_id = 6

Antworten:

3 für die Antwort № 1

Sie können etwas wie verwenden

    UPDATE mytable
SET myfield = CASE other_field
WHEN 1 THEN "value"
WHEN 2 THEN "value"
WHEN 3 THEN "value"
END
WHERE id IN (1,2,3)

Für weitere Informationen überprüfen Aktualisieren Sie mehrere Zeilen mit unterschiedlichen Werten und einer einzelnen SQL-Abfrage


0 für die Antwort № 2

Im Allgemeinen können Sie dies nicht tun. Zumindest unterstützen MySQL, DB2, SQL Server und PostgreSQL keine Abfragen, bei denen unterschiedliche WHERE-Klauseln für verschiedene SET-Klauseln gelten.

Sie brauchen auch nicht. Normalerweise können Sie eine vorbereitete Anweisung mit Platzhaltern für die Variablen verwenden, die Sie mit einer Liste von Parametern ausführen. Je nach Sprache, Datenbankadapter und Datenbank kann dies im "Batch" -Modus ausgeführt werden, was ziemlich effizient ist.

Für eine höhere Genauigkeit sind weitere Informationen zur verwendeten Sprache, Datenbank und zum Datenbankadapter erforderlich.