สร้างตารางตัวอย่าง
mysql> create table DemoTable (
-> Id int,
-> Score int
-> );
Query OK, 0 rows affected (0.69 sec)
เพิ่มข้อมูลตัวอย่าง
mysql> insert into DemoTable values(1, 858858686); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(2, 9900554); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values(3, 646565667); Query OK, 1 row affected (0.15 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
ผลลัพธ์
+------+-----------+ | Id | Score | +------+-----------+ | 1 | 858858686 | | 2 | 9900554 | | 3 | 646565667 | +------+-----------+ 3 rows in set (0.00 sec)
Stored Procedure ส่งคืนค่า Score ตาม Id
mysql> DELIMITER //
mysql> CREATE PROCEDURE Test_StoredProcedure(IN id INT, OUT scoreValue INT)
-> BEGIN
-> SELECT Score INTO scoreValue FROM DemoTable tbl WHERE tbl.Id = id;
-> END
-> //
Query OK, 0 rows affected (0.18 sec)
mysql> DELIMITER ;
เรียก Stored Procedure และเก็บผลในตัวแปร @result
mysql> call Test_StoredProcedure(2, @result); Query OK, 1 row affected (0.00 sec)
แสดงค่าตัวแปร
mysql> select @result;
ผลลัพธ์
+---------+ | @result | +---------+ | 9900554 | +---------+ 1 row in set (0.00 sec)
คำอธิบาย: ใช้ OUT parameter ส่งค่ากลับ CALL procedure(พารามิเตอร์เข้า, @ตัวแปรรับค่า) แล้ว SELECT @ตัวแปรรับค่า