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. Prüfen Sie, ob das Ereignis aktiviert ist Vari...
Inhaltsverzeichnis 1. Hintergrund: 2. Gestaltungs...
Schnelles Lesen Warum müssen wir SQL-Anweisungen ...
Wenn Programmierer täglich TypeScript-/JavaScript...
Inhaltsverzeichnis Überblick 1. Abhängigkeitsinje...
1. Laden Sie das Installationspaket von der offiz...
1. Manchmal verwenden wir ES Aufgrund begrenzter ...
Einführung in Textschatten Verwenden Sie in CSS d...
In diesem Artikel wird erklärt, wie Sie MySQL aus...
Szenario So rendern Sie Listen mit bis zu 10.000 ...
In diesem Artikel wird der Verbindungsfehler ECON...
Was tun, wenn Sie Windows Server 2008R2 vergessen...
Inhaltsverzeichnis 1. Grundlegender Überblick übe...
Heute habe ich zufällig einem Freund beim Umzug s...
Lassen Sie uns heute einen einfachen 3D-Zauberwür...