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

Oberflächliches Webdesign

<br />Ich war schon immer der Meinung, dass ...

Implementierung des Docker-CPU-Limits

1. --cpu=<Wert> 1) Geben Sie an, wie viele ...

JS verwendet Map, um doppelte Arrays zu integrieren

Inhaltsverzeichnis Vorwort Daten simulieren Zusam...

Analyse von Multithread-Programmierbeispielen unter Linux

1 Einleitung Die Thread-Technologie wurde bereits...

React DVA-Implementierungscode

Inhaltsverzeichnis dva Verwendung von dva Impleme...

Reines CSS für eine coole Ladeanimation

Schauen wir uns an, welche Ladeanimationseffekte ...

Analyse der Schwierigkeiten im Hot-Standby der MySQL-Datenbank

Ich habe Ihnen zuvor die Konfigurationsmethode fü...

Docker-Installations-Tutorial zu RocketMQ (am ausführlichsten)

RocketMQ ist eine verteilte, warteschlangenbasier...

Tutorial zur Installation von Elasticsearch 7.6.2 in Docker

Docker installieren Sie müssen Docker installiere...

Detaillierte Erklärung des Parameters slave_exec_mode in MySQL

Heute habe ich zufällig den Parameter slave_exec_...