การใช้ SELECT ... INTO สำหรับกำหนดค่าตัวแปร
ใน MySQL คุณสามารถเก็บผลลัพธ์ของ Query (Single Value) ลงในตัวแปรผู้ใช้ (User Variable) ได้ด้วยคำสั่ง SELECT ... INTO
รูปแบบคำสั่ง
SELECT your_column INTO @variable_name
FROM your_table_name
WHERE condition;
ตัวอย่างการใช้งานจริง
1. สร้างตารางข้อมูลนักศึกษา
CREATE TABLE StudentInformation (
StudentId INT,
StudentName VARCHAR(100),
StudentAge INT
);
2. เพิ่มข้อมูลตัวอย่าง
INSERT INTO StudentInformation VALUES
(1, 'John', 23),
(2, 'Adam', 24),
(3, 'Bob', 21),
(4, 'Carol', 20),
(5, 'Mike', 25);
3. เก็บอายุของ Adam ลงตัวแปร
SELECT StudentAge INTO @yourAge
FROM StudentInformation
WHERE StudentName = 'Adam';
4. ตรวจสอบค่าในตัวแปร
SELECT @yourAge;
ผลลัพธ์
+----------+
| @yourAge |
+----------+
| 24 |
+----------+
ข้อควรระวังและข้อจำกัด
- ⚠️ Query ต้องคืนค่า เพียง 1 แถว 1 คอลัมน์ เท่านั้น (Error ถ้ามากกว่า)
- ใช้
LIMIT 1เพื่อความปลอดภัย:SELECT col INTO @var FROM table WHERE cond LIMIT 1 - ตัวแปร User Variable (
@var) มีอายุอยู่ใน Session นั้นๆ เท่านั้น - สำหรับหลายค่า ให้ใช้หลายตัวแปร:
SELECT col1, col2 INTO @var1, @var2 FROM table WHERE cond - ใน Stored Procedure ควรใช้
DECLAREตัวแปร Local แทน (เร็วกว่าและปลอดภัยกว่า)