„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich Benutzervariablen aus Abfrageergebnissen in MySQL zuweisen, ohne verschachtelte Abfragen zu verwenden?

Wie kann ich Benutzervariablen aus Abfrageergebnissen in MySQL zuweisen, ohne verschachtelte Abfragen zu verwenden?

Veröffentlicht am 06.11.2024
Durchsuche:812

How Can I Assign User Variables from Query Results in MySQL without Using Nested Queries?

Zuweisung von Benutzervariablen aus dem Abfrageergebnis in MySQL

Hintergrund und Ziel

Das Zuweisen benutzerdefinierter Variablen basierend auf Abfrageergebnissen verbessert die Möglichkeiten zur Datenbankmanipulation. In diesem Artikel wird eine Methode untersucht, um dies in MySQL zu erreichen, ohne auf verschachtelte Abfragen zurückgreifen zu müssen.

Syntax für die Zuweisung von Benutzervariablen

Entgegen der landläufigen Meinung kann die Zuweisung von Benutzervariablen direkt in Abfragen integriert werden. Der Zuweisungsoperator für SET-Anweisungen ist entweder = oder :=. Allerdings muss := in anderen Anweisungen verwendet werden, da = für Vergleiche reserviert ist.

Abfragebeispiel

Um diese Technik zu veranschaulichen, nehmen wir an, dass USER und GROUP eindeutig sind. Die folgende Abfragesequenz veranschaulicht die Funktionalität:

SET @user := 123456;
SELECT @group := `group` FROM USER WHERE user = @user;
SELECT * FROM USER WHERE `group` = @group;

Beispieldaten und Ergebnisse

Verwenden einer Beispieltabelle mit den folgenden Daten:

CREATE TABLE user (`user` int, `group` int);
INSERT INTO user VALUES (123456, 5);
INSERT INTO user VALUES (111111, 5);

Die Abfrage liefert das folgende Ergebnis:

 -------- ------- 
| user   | group |
 -------- ------- 
| 123456 |     5 |
| 111111 |     5 |
 -------- ------- 

Alternativer Ansatz

Alternativ kann die folgende Syntax verwendet werden:

SET @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group;
SELECT * FROM user WHERE `group` = @group;
Neuestes Tutorial Mehr>

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