Eine "klassische" Falle der MySQL UPDATE-Anweisung

Eine "klassische" Falle der MySQL UPDATE-Anweisung

Jemand hat zum Beispiel folgendes Bild angefragt:

Das Problem lässt sich wie folgt zusammenfassen: Beim update eines Datensatzes in MySQL ist die Syntax korrekt, aber der Datensatz wird nicht aktualisiert...

Als ich zum ersten Mal auf dieses Problem stieß, nahm ich diese Anweisung und führte sie direkt in der Testbibliothek aus. Ich stellte fest, dass es tatsächlich ein Problem gab, aber es unterschied sich immer noch von der Entwicklungsbeschreibung. Hier verwende ich Testdaten, um es zu simulieren:

1. Problematische SQL-Anweisungen

Der Datensatz nach der Ausführung lautet:

Wie Sie sehen, ist das Ergebnis nicht, wie der Entwickler sagte, „es scheint keine Wirkung zu haben“, sondern es hat tatsächlich eine Wirkung:

Warum?

Es scheint, dass es kein Problem mit der Syntax gibt. Ich habe die Update-Syntax im offiziellen MySQL-Dokument nachgeschlagen:

Als klar wurde, dass das Format von assignment_list eine durch Kommas getrennte Liste von col_name=value ist, war plötzlich klar, dass die vom Entwickler gewünschte Aktualisierungsanweisung für mehrere Felder folgendermaßen geschrieben werden sollte:

Gehen Sie zurück und versuchen Sie es erneut

Und tatsächlich habe ich dieses Mal das gewünschte Ergebnis erzielt!

Zusammenfassung: Wenn Sie in einer UPDATE Anweisung mehrere Felder aktualisieren möchten, können Sie zwischen den Feldern kein „AND“ verwenden, sondern müssen sie durch Kommas trennen.

Nachtrag: Als ich später etwas Zeit hatte, habe ich zurückgeblickt und mich gefragt, warum das seltsame Ergebnis owner_code=0 “ erschien, als sie durch „AND“ getrennt wurden. Nach vielen Versuchen habe ich Folgendes herausgefunden:

ist gleichbedeutend mit:

Und ( '43212' and owner_name='李四' ) ist ein logischer Ausdruck und es ist nicht schwer zu erkennen, owner_name nicht 'Eigentümername' ist. Daher ist das Ergebnis dieses logischen Ausdrucks falsch, was in MySQL 0 entspricht!

Dies ist das Ende dieses Artikels über eine „klassische“ Falle der MySQL UPDATE -Anweisung. Weitere relevante MySQL UPDATE Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Praktisches MySQL + PostgreSQL Batch-Insert-Update insertOrUpdate
  • Unterschied zwischen MySQL-Update-Set und und
  • Nicht standardmäßiger Implementierungscode für die MySQL UPDATE-Anweisung
  • MySQL-Update-Fall Update-Feldwert ist keine feste Operation
  • Zusammenfassung der gemeinsamen Updatemethode für MySQL-Updates mehrerer Tabellen
  • Erläuterung der MySQL-Transaktionsauswahl für die Aktualisierung und Datenkonsistenzverarbeitung

<<:  Docker-Installations- und Konfigurationsschritte für MySQL

>>:  CSS-Beispielcode zum Erzielen eines kreisförmigen Fortschrittsbalkeneffekts mit Farbverlauf

Artikel empfehlen

Quellcodeanalyse des Nodejs-Modulsystems

Inhaltsverzeichnis Überblick CommonJS-Spezifikati...

Methode zur Optimierung von MySQL-Gruppenabfragen

MySQL behandelt GROUP BY- und DISTINCT-Abfragen i...

Einige Punkte, auf die wir beim Entwurf einer Webseite achten sollten

Webdesign: Je nach persönlichen Vorlieben und Inha...

Analyse des Hintergrundauthentifizierungsprozesses von Vue-Elementen

Vorwort: Kürzlich stieß ich in meinem Projekt auf...

Einfache Prinzipien für die Gestaltung des Webseiten-Layouts

Dieser Artikel fasst einige einfache Prinzipien d...

Liste der allgemeinen MySql-Abfragebefehlsoperationen

In MySQL häufig verwendete Abfragebefehle: mysql&...

Schreiben Sie eine dynamische Uhr auf einer Webseite in HTML

Verwenden Sie HTML, um eine dynamische Web-Uhr zu...

Mysql 5.7.17 Winx64-Installationstutorial auf Win7

Softwareversion und Plattform: MySQL-5.7.17-winx6...

Ein Artikel bringt Ihnen bei, sauberen JavaScript-Code zu schreiben

Inhaltsverzeichnis 1. Variablen Verwenden Sie aus...

Natives JS zur Implementierung eines Klickzahlenspiels

Native JS implementiert das Klickzahlenspiel zu I...

XHTML-Erste-Schritte-Tutorial: XHTML-Tags

Einführung in XHTML-Tags <br />Vielleicht is...

So erstellen Sie einen MySQL PXC-Cluster

Inhaltsverzeichnis 1. Einführung in PXC 1.1 Einfü...