สามารถดึงค่าจากตารางมาเก็บในตัวแปรหลายตัวพร้อมกันได้ด้วยคำสั่ง SELECT ... INTO
ตัวอย่าง Stored Procedure
mysql> DELIMITER //
mysql> create procedure Sp_Demo()
-> BEGIN
-> declare one varchar(20);
-> declare two varchar(20);
-> select FirstName, LastName INTO one, two from useProcedure where id = 1;
-> select one, two;
-> END;
-> //
Query OK, 0 rows affected (0.26 sec)
mysql> DELIMITER ;
การเรียกใช้งาน
mysql> call Sp_Demo();
+------+-------+ | one | two | +------+-------+ | Adam | Smith | +------+-------+
จุดสำคัญ
- ลำดับคอลัมน์ใน
SELECTต้องตรงกับลำดับตัวแปรในINTO - จำนวนคอลัมน์และตัวแปรต้องเท่ากัน
- Query ต้องคืนค่าแถวเดียวเท่านั้น (ใช้ WHERE กับ PRIMARY KEY หรือ LIMIT 1)
รูปแบบอื่นๆ
ใช้ตัวแปรเซสชัน (Session Variables)
SELECT FirstName, LastName INTO @one, @two FROM useProcedure WHERE id = 1;
ดึงหลายแถว (ต้องใช้ Cursor)
DECLARE cur CURSOR FOR SELECT FirstName, LastName FROM useProcedure; OPEN cur; FETCH cur INTO var1, var2; -- loop... CLOSE cur;