Heim  >  Artikel  >  Datenbank  >  **Wie rufe ich Daten aus betroffenen Zeilen nach einer UPDATE-Abfrage in MySQL ab?**

**Wie rufe ich Daten aus betroffenen Zeilen nach einer UPDATE-Abfrage in MySQL ab?**

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 08:52:02337Durchsuche

**How to Retrieve Data from Affected Rows After an UPDATE Query in MySQL?**

Kombination von SELECT- und UPDATE-Abfragen für den Abruf betroffener Zeilendaten in MySQL

MySQL bietet leistungsstarke Abfragefunktionen, einschließlich der Möglichkeit, komplexe Vorgänge auszuführen. Ein häufiges Szenario besteht darin, SELECT- und UPDATE-Abfragen zu kombinieren, um von der Aktualisierungsoperation betroffene Daten abzurufen. Dieser Ansatz kann die Verarbeitung rationalisieren und die Notwendigkeit separater Abfragen überflüssig machen.

In diesem speziellen Fall besteht das Ziel darin, zwei Abfragen zu kombinieren: eine SELECT-Anweisung, die Daten basierend auf bestimmten Kriterien abruft, und eine UPDATE-Anweisung, die übereinstimmende Zeilen ändert . Durch das Zusammenführen dieser Abfragen besteht das Ziel darin, die Daten der aktualisierten Zeilen in einem einzigen Vorgang zu erhalten.

Zunächst versuchte der Benutzer, eine Unterabfrage zu verwenden, aber die gewünschten Ergebnisse wurden nicht erzielt. Dies veranlasste die Erforschung alternativer Methoden, einschließlich einer direkten Kombination von SELECT und UPDATE ohne Unterabfrage.

Lösung: Nutzung der SET- und SELECT-Techniken

Eine einfallsreiche Lösung wurde entdeckt durch externe Forschung: Durch den Einsatz von SET- und SELECT-Techniken ist es möglich, das gewünschte Ergebnis zu erzielen. Das bereitgestellte Code-Snippet demonstriert diesen Ansatz:

<code class="sql">SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;</code>

Diese Lösung verwendet die folgenden Schritte:

  • Initialisiert die Variable @uids auf null.
  • Aktualisiert das Footable indem die foo-Spalte für Zeilen, in denen fooid größer als 5 ist, auf „bar“ gesetzt wird.
  • Innerhalb der UPDATE-Abfrage weist eine Unterabfrage die aktualisierten fooid-Werte der Variablen @uids zu.
  • Schließlich Die SELECT-Abfrage ruft die @uids-Variable ab, die nun eine durch Kommas getrennte Liste der betroffenen Foid-Werte enthält.

Das obige ist der detaillierte Inhalt von**Wie rufe ich Daten aus betroffenen Zeilen nach einer UPDATE-Abfrage in MySQL ab?**. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn