Ich habe Tabelle - Konfiguration . Schema:
config_name | config_value
Und ich möchte mehrere Datensätze in einer Abfrage aktualisieren. Ich versuche es so:
UPDATE config
SET t1.config_value = 'value'
, t2.config_value = 'value2'
WHERE t1.config_name = 'name1'
AND t2.config_name = 'name2';
aber diese Abfrage ist falsch :(
Können Sie mir helfen?
Antworten:
Versuchen Sie es mit einer Update-Syntax für mehrere Tabellen
Hier ist die SQLFiddle- Demo
oder bedingte Aktualisierung
Hier ist die SQLFiddle- Demo
quelle
config AS t1
wo istAS
optional.Sie können dies mit INSERT wie folgt erreichen:
Dadurch werden neue Werte in die Tabelle eingefügt. Wenn jedoch der Primärschlüssel dupliziert wird (bereits in die Tabelle eingefügt), werden die von Ihnen angegebenen Werte aktualisiert und derselbe Datensatz wird nicht zum zweiten Mal eingefügt.
quelle
In meinem Fall muss ich die Datensätze aktualisieren, die mehr als 1000 sind, anstatt die Aktualisierungsabfrage jedes Mal zu treffen, wenn ich dies vorgezogen habe.
78,77 sind die Benutzer-IDs und für diese Benutzer-ID muss ich die base_id 999 bzw. 88 aktualisieren. Dies funktioniert für mich.
quelle
Vielleicht ist es für jemanden nützlich
für Postgresql 9.5 wirkt als Zauber
Diese SQL aktualisiert den vorhandenen Datensatz und fügt ihn ein, wenn ein neuer (2 in 1)
quelle
Camilles Lösung hat funktioniert. Verwandelte es in eine grundlegende PHP-Funktion, die die SQL-Anweisung schreibt. Hoffe das hilft jemand anderem.
quelle
an Stelle von
Sie können verwenden
quelle
Führen Sie den folgenden Code aus, um n Zeilen zu aktualisieren, wobei die übergeordnete ID die ID ist, von der Sie die Daten abrufen möchten, und die untergeordneten IDs die IDs sind, die aktualisiert werden müssen. Sie müssen also nur die übergeordnete ID und die untergeordneten IDs zum Aktualisieren hinzufügen Alle Zeilen, die Sie benötigen, verwenden ein kleines Skript.
quelle
Angenommen, Sie haben die Liste der zu aktualisierenden Werte in einer Excel-Tabelle mit config_value in Spalte A1 und config_name in B1 , können Sie die Abfrage dort einfach mit einer Excel-Formel wie schreiben
=CONCAT("UPDATE config SET config_value = ","'",A1,"'", " WHERE config_name = ","'",B1,"'")
quelle
Führen Sie den folgenden Code aus, wenn Sie alle Datensätze in allen Spalten aktualisieren möchten:
Wenn Sie alle Spalten einer bestimmten Zeile aktualisieren möchten, führen Sie den folgenden Code aus:
quelle