Normalerweise verwenden wir die folgende SQL-Anweisung, um Feldwerte zu aktualisieren: UPDATE meineTabelle SET meinFeld='Wert' WHERE anderes_Feld='anderer_Wert'; Aber was würden Sie tun, wenn Sie mehrere Datenzeilen aktualisieren möchten und die Feldwerte in jeder Zeile unterschiedlich sind? Zunächst denken Sie vielleicht an die Verwendung einer Schleife zur Ausführung mehrerer UPDATE-Anweisungen, wie im folgenden Python-Programmbeispiel: für x in xrange(10): sql = ''' UPDATE meineTabelle SET meinFeld='Wert' WHERE anderes_Feld='anderer_Wert'; ''' An dieser Methode ist nichts auszusetzen, und der Code ist einfach und leicht zu verstehen, aber in der Schleifenanweisung werden mehr als eine SQL-Abfrage ausgeführt. Bei der Optimierung des Systems möchten wir die Anzahl der Datenbankabfragen immer so weit wie möglich reduzieren, um den Ressourcenverbrauch zu verringern und die Systemgeschwindigkeit zu verbessern. Glücklicherweise gibt es eine bessere Lösung. Die SQL-Anweisung ist etwas komplizierter, aber Sie müssen nur eine Abfrage ausführen. Die Syntax lautet wie folgt: AKTUALISIEREN Sie meine Tabelle SET meinFeld = CASE anderes_Feld WENN 1, DANN 'Wert' WENN 2, DANN 'Wert' WENN 3, DANN 'Wert' ENDE WO id IN (1,2,3) Diese SQL-Anweisung ist leicht zu verstehen. Sie verwendet das in vielen Programmiersprachen übliche Schlüsselwort CASE, um Typentscheidungen für verschiedene Zweige basierend auf dem Wert des ID-Felds vorzunehmen. Wenn Sie mehrere Felder in einer Zeile aktualisieren müssen, können Sie die folgende SQL-Anweisung verwenden: UPDATE-Kategorien SET display_order = CASE-ID WENN 1, DANN 3 WENN 2, DANN 4 Wenn 3, dann 5 ENDE, Titel = Fall-ID WENN 1, DANN „Neuer Titel 1“ WENN 2, DANN „Neuer Titel 2“ WENN 3, DANN „Neuer Titel 3“ ENDE WO id IN (1,2,3) Das obige Schema reduziert die Anzahl der Datenbankabfragevorgänge erheblich und spart viel Systemressourcen. Dies hat jedoch einen Nachteil: Das Problem, das beachtet werden muss, ist die Länge der SQL-Anweisung. Dabei muss die von der Programmausführungsumgebung unterstützte Zeichenfolgenlänge berücksichtigt werden. Dies kann natürlich auch durch Aktualisieren der MySQL-Einstellungen erweitert werden. Natürlich bietet uns Python, eine so leistungsstarke Sprache, auch eine so leistungsstarke Methode wie ExecuteMany, mit der wir nicht nur Daten einfügen, sondern auch Daten aktualisieren können. Als Person, die häufig Dinge tut, müssen diese Dinge häufig verwendet werden, um die Ergebnisse zu vergleichen. update_sql = ''' AKTUALISIEREN mayi_order_image setze order_city = %s wobei user_ip = %s und dt = %s und id = %s und user_ip ist nicht null und (order_city ist null oder order_city = '') ''' pp = [] für x in xrange(len(Ergebnis)): ip = Ergebnis[x][0] id_ = Ergebnis[x][1] hinzufügen = dbip.lookup(str(ip)) fügt hinzu = hinzufügen.split('\t') Adresse = str(fügt hinzu[0]) + ','+str(fügt hinzu[1] )+ ','+ str(fügt hinzu[2]) pp.append((Adresse,IP,Ende,ID_)) wenn x%5000 == 0: saveLog_many(update_sql,pp) pp = [] saveLog_many(update_sql,pp) Ist das bequemer? Aber was die Geschwindigkeit betrifft, denke ich, dass es zum Vergleich besser wäre, es mit der zweiten Methode zu kombinieren. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: Axios-Projekt mit 77,9 K GitHub-Repository: Welche Dinge sind es wert, gelernt zu werden?
>>: So überprüfen Sie die PCIe-Version und -Geschwindigkeit unter Linux
1. Allgemeine Verbindungen für MySQL INNER JOIN (...
Docker ist wirklich cool, vor allem, weil es im V...
Inhaltsverzeichnis 1. Der Unterschied zwischen Üb...
Ohne weitere Umschweife komme ich gleich zum Code...
1. Was ist Refs wird in Computern als Resilient F...
Problembeschreibung: Fehlermeldung: Ursache: com....
Das W3C, eine 1994 gegründete Organisation, zielt...
Inhaltsverzeichnis Hintergrund zum Schreiben Proj...
Inhaltsverzeichnis 1. Kapseln Sie komplexe Seiten...
Inhaltsverzeichnis Definition Grammatik Beispiele...
Inhaltsverzeichnis 1. Beispiel: Hiermit können Da...
Der Code sieht folgendermaßen aus: .Verfahren{ Ra...
Inhaltsverzeichnis 1. HttpGET 2. HTTP POST WebSoc...
Drei-Wege-Handshake-Phase Anzahl der Wiederholung...
1. Grundlegende Einführung in die Linux-Gruppe Un...