Heim >Datenbank >MySQL-Tutorial >Wie kann ich berechnete Felder in MySQL-SELECT-Abfragen wiederverwenden?

Wie kann ich berechnete Felder in MySQL-SELECT-Abfragen wiederverwenden?

Susan Sarandon
Susan SarandonOriginal
2025-01-24 11:52:10600Durchsuche

How Can I Reuse Calculated Fields in MySQL SELECT Queries?

effizient wiederverwenden berechnete Felder in MySQL -Abfragen

mysql ermöglicht die Wiederverwendung berechneter Felder innerhalb von SELECT Anweisungen, Vereinfachung komplexer Abfragen und Reduzierung der Redundanz. Ein direktes Verweisen auf ein berechnetes Feld in derselben SELECT -Liste wird jedoch nicht direkt unterstützt. Lassen Sie uns dies mit einem Beispiel veranschaulichen:

Die folgende Abfrage versucht, die total_sale Berechnung wiederzuverwenden:

<code class="language-sql">SELECT 
    s.f1 + s.f2 as total_sale, 
    s.f1 / total_sale as f1_percent
FROM sales s;</code>

Dies führt zu einem Fehler, da total_sale zum Zeitpunkt f1_percent nicht als Spalte erkannt wird.

Die Lösung: benutzerdefinierte Variablen

Um diese Einschränkung zu überwinden, können wir die benutzerdefinierten Variablen von MySQL nutzen:

<code class="language-sql">SELECT 
    @total_sale := s.f1 + s.f2 as total_sale, 
    s.f1 / @total_sale as f1_percent
FROM sales s;</code>

Hier weisen wir der Benutzervariablen s.f1 s.f2 das Ergebnis von @total_sale zu. Diese Variable ist dann zur Verwendung in der anschließenden Berechnung von f1_percent.

verfügbar

Wichtige Überlegungen:

Die Dokumentation von

Mysql warnt davor, sich auf die Reihenfolge der Bewertung zu verlassen, wenn Benutzervariablen in derselben Anweisung zugewiesen und gelesen werden. Das Verhalten könnte unvorhersehbar sein. Betrachten Sie für zuverlässige Ergebnisse, insbesondere in komplexen Abfragen, alternative Ansätze wie Unterabfragen oder gemeinsame Tabellenausdrücke (CTEs), die eine bessere Klarheit und Vorhersehbarkeit bieten. Weitere Einzelheiten finden Sie in der offiziellen MySQL -Dokumentation zu Benutzervariablen.

Das obige ist der detaillierte Inhalt vonWie kann ich berechnete Felder in MySQL-SELECT-Abfragen wiederverwenden?. 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