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
Inhaltsverzeichnis 1. existiert 1.1 Beschreibung ...
So zentrieren Sie den gesamten Seiteninhalt und pa...
1. Installieren Sie vue-cli npm ich @vue/cli -g 2...
Das CSS-Positionsattribut gibt den Positionierung...
In diesem Artikel werden hauptsächlich Tabellen e...
In diesem Artikel wird der spezifische Code zur I...
Inhaltsverzeichnis 1. Verteilte LNMP-Image-Produk...
Heute möchte ich mit Ihnen teilen, dass der Stand...
Inhaltsverzeichnis 2. Feldverkettung 2. Geben Sie...
In diesem Artikel wird der spezifische JavaScript...
Anti-Crawler-Richtliniendatei hinzugefügt: vim /u...
Bild-Tag : <img> Um ein Bild in eine Seite e...
1: Verstehen Sie die Bedeutung von Adressumschrei...
1. Entpacken Sie MySQL 5.7 2. Erstellen Sie eine ...
In diesem Artikelbeispiel wird der spezifische Co...