In MySQL kann die Ausführung mehrerer Abfragen zeitaufwändig sein. Um die Leistung zu optimieren, ist es wünschenswert, Abfragen zu einer einzigen Abfrage zusammenzufassen. Dies ist der Kern einer von Quan gestellten Abfrage: Können zwei Abfragen zusammengeführt werden, um aktualisierte Zeilen zurückzugeben?
Die erste Abfrage wählt Zeilen aus einer Tabelle basierend auf bestimmten Kriterien aus, während die zweite Abfrage Zeilen aktualisiert, die dieselben Kriterien erfüllen. Das Kombinieren dieser Abfragen erfordert eine Technik, die sowohl Lesen als auch Schreiben in einem einzigen Vorgang ermöglicht.
Ein Ansatz besteht darin, eine Unterabfrage zu verwenden. Allerdings stieß Quan bei dieser Methode auf Einschränkungen. Eine alternative Lösung ergab sich aus einer Empfehlung von https://gist.github.com/PieterScheffers/189cad9510d304118c33135965e9cddb:
SET @uids := null; UPDATE footable SET foo = 'bar' WHERE fooid > 5 AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) ); SELECT @uids;
Diese Abfrage nutzt die folgenden Schritte:
Diese Lösung kombiniert effizient sowohl Zeilenaktualisierungen als auch den Abruf und stellt die gewünschte Funktionalität in einer einzigen Abfrage bereit.
Das obige ist der detaillierte Inhalt vonWie erreicht man Zeilenaktualisierungen und -abrufe in einer einzigen MySQL-Abfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!