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

So installieren Sie eine MySQL-Datenbank auf einem Debian 9-System

Vorwort Beim Anblick des Titels sollte sich jeder...

Erläuterung der Array-Verarbeitung in React und Redux

Dieser Artikel stellt einige häufig verwendete Fu...

Praxis der Linux-Datei- und Benutzerverwaltung

1. Zeigen Sie die Dateien oder Verzeichnisse im V...

MySQL 5.7.20 Green Edition Installation Detailliertes grafisches Tutorial

Lassen Sie uns zunächst verstehen, was MySQL ist....

Vue implementiert Klick-Feedback-Anweisungen für den Wasserwelleneffekt

Inhaltsverzeichnis Wasserwelleneffekt Sehen wir u...

JavaScript-Code zur Implementierung der Weibo-Batch-Unfollow-Funktion

Ein cooler JavaScript-Code, um Weibo-Benutzern st...

Detaillierte Erläuterung des virtuellen DOM in der Vue-Quellcodeanalyse

Warum brauchen wir virtuellen Dom? Virtual DOM wu...

JavaScript implementiert eine Warteschlange mit doppeltem Ende

In diesem Artikelbeispiel wird der spezifische Co...

CSS3-Animation – Erläuterung der Funktion „Steps“

Als ich mir in letzter Zeit einige CSS3-Animation...

So verarbeiten Sie lokal dynamisch geladene Bilder in Vue

Finden Sie das Problem Heute bin ich auf ein Prob...