SELECTcol_name
[,...] INTOvar_name
[,...]table_expr
Diese SELECT
-Syntax speichert die
ausgewählten Spalten direkt in Variablen. Daher kann nur eine
einzige Zeile abgerufen werden.
SELECT id,data INTO x,y FROM test.t1 LIMIT 1;
Bei den Namen von Benutzervariablen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Siehe Abschnitt 9.3, „Benutzerdefinierte Variablen“.
Wichtig: In SQL dürfen
Variablennamen und Spaltennamen nicht gleich sein. Wenn eine
SQL-Anweisung wie etwa ein SELECT ... INTO
eine Spalte und eine mit demselben Namen deklarierte lokale
Variable benutzt, interpretiert MySQL in der gegenwärtigen
Version diese Referenz als den Namen der Variablen. So wird
beispielsweise xname
in der folgenden
Anweisung als die Variable und nicht als
die Spalte mit dem Namen
xname
interpretiert:
CREATE PROCEDURE sp1 (x VARCHAR(5)) BEGIN DECLARE xname VARCHAR(5) DEFAULT 'bob'; DECLARE newname VARCHAR(5); DECLARE xid INT; SELECT xname,id INTO newname,xid FROM table1 WHERE xname = xname; SELECT newname; END;
Wenn diese Prozedur aufgerufen wird, gibt die Variable
newname
immer den Wert
'bob'
zurück, egal welchen Wert die Spalte
table1.xname
auch immer haben mag.
Siehe auch Abschnitt I.1, „Beschränkungen bei gespeicherten Routinen und Triggern“.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.