So fragen Sie dieselbe Tabelle in einer MySQL-Datenbank gleichzeitig ab und aktualisieren sie

So fragen Sie dieselbe Tabelle in einer MySQL-Datenbank gleichzeitig ab und aktualisieren sie

In gewöhnlichen Projekten stoße ich häufig auf dieses Problem: Ich muss in einem Schritt gleichzeitig Daten aktualisieren und abfragen. Wenn beispielsweise eine Datentabelle wie unten dargestellt vorhanden ist, muss der Aktualisierungsvorgang nun wie folgt aussehen: Aktualisieren Sie den Namenswert von status=1 auf den Namenswert von id=2

這里寫圖片描述

Um diese Anforderung zu erfüllen, denken wir normalerweise an die folgende Anweisung:

UPDATE tb_testSET NAME = ( SELECT NAME FROM tb_test WHERE id= 2)WHERE `status` = 1

You can't specify target table 'tb_test' for update in FROM clause .“ Sie können nicht am selben Tisch arbeiten. Ändern Sie Ihre Denkweise. Wenn es nicht derselbe Tisch ist, sollte es möglich sein. Daher können Sie das ausgewählte Ergebnis als temporäre Zwischentabelle behandeln und die gewünschten Update-bezogenen Daten aus der Zwischentabelle abrufen. Daher kann die obige Update-Anweisung wie folgt geändert werden:

UPDATE tb_testSET NAME = (select name from ( SELECT NAME FROM tb_test WHERE id = 2) as t)WHERE `status` = 1

Damit ist die betreffende Operation abgeschlossen. Der allgemeine Vorgang ist: Fragen Sie die Daten mit der ID = 2 als Zwischentabelle t ab; fragen Sie die festgelegten Daten aus der Tabelle t ab; führen Sie den Aktualisierungsvorgang aus, sodass Sie nicht in derselben Anweisung dieselbe Tabelle aktualisieren und auswählen, da dies dem Bedienen von zwei Tabellen entspricht, tb_test und der Zwischentabelle t. Das Endergebnis ist wie folgt:

這里寫圖片描述

Das könnte Sie auch interessieren:
  • Zusammenfassung der gemeinsamen Updatemethode für MySQL-Updates mehrerer Tabellen
  • Ein Beispiel zum Abfragen von Daten in MySQL und zum Aktualisieren dieser Daten in eine andere Tabelle basierend auf Bedingungen
  • So verwenden Sie ein Feld in einer Tabelle, um ein Feld in einer anderen Tabelle in MySQL zu aktualisieren
  • Mysql aktualisiert bestimmte Felder einer anderen Tabelle basierend auf Daten aus einer Tabelle (SQL-Anweisung)
  • So aktualisieren Sie eine andere Tabelle in MySQL
  • Eine Lösung zum Aktualisieren des Erhöhungs-/Verringerungsbereichs und der Erhöhungs-/Verringerungsrate der gesamten Tabelle mit nur einer SQL-Anweisung

<<:  So zählen Sie die Anzahl bestimmter Zeichen in einer Datei unter Linux

>>:  Zusammenfassung häufig verwendeter Operatoren und Funktionen in MySQL

Artikel empfehlen

Was ist SSH? Wie benutzt man? Was sind die Missverständnisse?

Inhaltsverzeichnis Vorwort Was ist SSH? Wofür wir...

Einige Referenzen zu Farben in HTML

In HTML werden Farben auf zwei Arten dargestellt. ...

Detaillierte Erklärung dieses Zeigeproblems in JavaScript

Vorwort Glauben Sie mir, solange Sie sich an die ...

Verzeichnisberechtigungen beim Erstellen eines Containers mit Docker

Als ich gestern ein Projekt schrieb, musste ich d...

Beim Website-Design sollte auf die Farbhierarchie geachtet werden

Ich habe kürzlich gesagt, dass Design ein Gefühl d...

So legen Sie die Speichergröße von Docker Tomcat fest

Wenn Sie Tomcat in Docker installieren, kann es b...

Vue.js implementiert Musikplayer

In diesem Artikel wird der spezifische Code von V...

Lösen Sie das Problem, dass ifconfig im Docker nicht verfügbar ist

Als ich kürzlich Docker lernte, stellte ich fest,...

Detaillierte Erläuterung der Nginx-Strombegrenzungskonfiguration

Dieser Artikel erläutert anhand von Beispielen di...

Der Unterschied zwischen Löschen, Abschneiden und Löschen und wie man wählt

Vorwort Letzte Woche fragte mich ein Kollege: „Br...