Definieren und Verwenden einer Variablen in einer ausgewählten Anweisung
In SQL werden im Allgemeinen nicht empfohlen, einer Benutzervariablen einen Wert zuzuweisen und in derselben Auswahlanweisung zu verwenden. Die Dokumentation von MySQL gibt ausdrücklich an, dass die Reihenfolge der Bewertung für solche Ausdrücke nicht definiert ist und basierend auf Anweisungselementen und Serververöffentlichungen variieren kann.
Um diesen Punkt zu veranschaulichen, betrachten @Z: = sum (Artikel), 2*@z AUS Tablea;
SELECT @z:=SUM(item), 2*@z FROM TableA;
auswählen @Z: = smlow -Procedure (Artikel), 2*@z AUS Tablea;
SELECT @z:=someProcedure(item), 2*@z FROM TableA;
, um dieses Problem zu beheben und eine Variable in einer Auswahlanweisung zu definieren, können Sie eine Unterabfrage verwenden:
select @z, @z* von (select @Z: = sum (item) Von Tablea ) t;
select @z, @z*2 from (SELECT @z:=sum(item) FROM TableA ) t;
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3