Heute werde ich Ihnen einen Unterschied zwischen der UPDATE-Anweisung in der MySQL-Datenbank und dem SQL-Standard (und anderen Datenbanken) vorstellen. Wenn wir diesem Problem keine Aufmerksamkeit schenken, kann es zu unerwarteten Ergebnissen führen. Beginnen wir mit der Erstellung einer einfachen Beispieltabelle: TABELLE ERSTELLEN t1( Ich würde int, col1 int, col2 int ); EINFÜGEN IN t1 WERTE (1, 1, 1); WÄHLEN SIE * VON t1; ID|Spalte1|Spalte2| --|----|----| 1| 1| 1| ———————————————— Copyright-Erklärung: Dieser Artikel ist ein Originalartikel des CSDN-Bloggers „Teacher Tony Who Doesn't Cut Hair“ und unterliegt der CC 4.0 BY-SA-Urheberrechtsvereinbarung. Bitte fügen Sie beim Nachdruck den Link zur Originalquelle und diese Erklärung bei. Ursprünglicher Link: https://blog.csdn.net/horses/article/details/110238573CREATE TABLE t1( Ich würde int, col1 int, col2 int ); EINFÜGEN IN t1 WERTE (1, 1, 1); WÄHLEN SIE * VON t1; ID|Spalte1|Spalte2| --|----|----| 1| 1| 1| Dann aktualisieren wir die Daten in Tabelle t1: AKTUALISIERUNG t1 SETZE col1 = col1 + 1, Spalte2 = Spalte1 WO id = 1; Wählen Sie Spalte1, Spalte2 aus. VON t1; Was sind die Ergebnisse der von der Abfrageanweisung zurückgegebenen Felder col1 und col2?
Wenn bei MySQL eine UPDATE-Anweisung eine zuvor aktualisierte Spalte (col1) in einem Ausdruck (col2 = col1) verwendet, wird der aktualisierte Wert der Spalte (2) anstelle des ursprünglichen Werts (1) verwendet. Beachten Sie, dass diese Implementierung in MySQL vom SQL-Standard abweicht. Wir haben auch andere Datenbanken getestet, darunter Oracle, Microsoft SQL Server, PostgreSQL und SQLite, deren Implementierungen dem SQL-Standard folgen. Wenn wir in MySQL den gleichen Effekt wie in Standard-SQL erzielen möchten, können wir die Reihenfolge der aktualisierten Felder in der UPDATE-Anweisung anpassen. Zum Beispiel: AKTUALISIERUNG t1 SETZE Spalte2 = Spalte1, col1 = col1 + 1 WO id = 1; Auf diese Weise wird die Spalte col2 vor col1 mit dem alten Wert von col1 (1) aktualisiert und das Ergebnis entspricht dem SQL-Standard. Fazit: Im Allgemeinen müssen wir uns beim Schreiben von UPDATE-Anweisungen keine Gedanken über die Aktualisierungsreihenfolge mehrerer Felder machen. Aufgrund von MySQL-Implementierungsproblemen müssen wir jedoch auf ihre grammatikalische Reihenfolge achten. Dies ist das Ende dieses Artikels über die nicht standardmäßige Implementierung der MySQL UPDATE-Anweisung. Weitere nicht standardmäßige Inhalte zur MySQL UPDATE-Anweisung 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:
|
<<: Zusammenfassung mehrerer Methoden zur Implementierung der vertikalen Zentrierung mit CSS
>>: Vue implementiert einen Wasserfallfluss mit unendlichem Laden
1 Einleitung Wenn wir SQL-Anweisungen schreiben, ...
Komponentengrundlagen 1 Wiederverwendung von Komp...
In diesem Artikel erfahren Sie mehr über die Inst...
1. Fügen Sie package.json hinzu "Haupt"...
Inhaltsverzeichnis Herunterladen und Installieren...
Inhaltsverzeichnis Was ist Vuex? Vuex-Nutzungszyk...
Nachdem wir eine Webdienstanwendung (wie etwa Tom...
Ohne weitere Umschweife sind dies diese drei Meth...
Verwenden Sie bei der Arbeit mehr Open-Source-Too...
Erstellen des Images Früher haben wir verschieden...
Vorwort Hallo zusammen, hier ist der CSS-Assisten...
So installieren Sie MySQL 5.7.18 unter Linux 1. L...
Vorwort Wenn sich unser Geschäft in einem sehr fr...
Verwenden Sie CSS-Stile und HTML-Tag-Elemente Um ...
Inhaltsverzeichnis Was ist ein Index Der Untersch...