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

Farbverlaufseffekt im HTML-Hintergrund durch CSS-Stil erreicht

Screenshots der Effekte: Implementierungscode: Cod...

Der Unterschied zwischen distinct und group by in MySQL

Einfach ausgedrückt wird distinct zum Entfernen v...

Einführung in die Verwendung des MySQL mysqladmin-Clients

Inhaltsverzeichnis 1. Überprüfen Sie den Status d...

Eine kurze Analyse von MySQL - MVCC

Versionskette In den Tabellen der InnoDB-Engine g...

Eine eingehende Analyse von MySQL erläutert die Verwendung und die Ergebnisse

Vorwort Bei unserer täglichen Arbeit führen wir m...

25 Beispiele für Website-Design im Nachrichtenstil

bmi Voyager Heugabel Ulster Lebensmittelhändler F...

Über gutes Design

<br />Auf zehntausend Personen, die die Frag...

Lösen Sie das Problem der Groß- und Kleinschreibung der Linux+Apache-Server-URL

Ich bin heute auf ein Problem gestoßen. Beim Eing...

Vue implementiert Multi-Tab-Komponente

Um die Wirkung direkt zu sehen, wurde ein Rechtsk...

Was ist JavaScript Anti-Shake und Throttling

Inhaltsverzeichnis 1. Funktion Entprellung 1. Was...