SET @variable = (SELECT ...) - เก็บค่าจาก Query ลงตัวแปร
ใช้คำสั่ง SET กำหนดค่า User Variable จาก Subquery ที่คืนค่า Single Value
รูปแบบคำสั่ง (Syntax)
SET @variable_name = (SELECT aggregate_function(column) FROM table_name);
ตัวอย่างการใช้งาน
สร้างตาราง QueryResultDemo:
CREATE TABLE QueryResultDemo (
Price INT
);
INSERT INTO QueryResultDemo VALUES (100), (20), (200), (80);
ข้อมูล:
| Price |
|---|
| 100 |
| 20 |
| 200 |
| 80 |
เก็บผลรวมราคาไว้ใน @TotalPrice:
SET @TotalPrice = (SELECT SUM(Price) FROM QueryResultDemo);
ตรวจสอบค่า:
SELECT @TotalPrice;
ผลลัพธ์:
| @TotalPrice |
|---|
| 400 |
รูปแบบอื่น: SELECT ... INTO
SELECT SUM(Price) INTO @TotalPrice FROM QueryResultDemo;
ข้อควรทราบเกี่ยวกับ User Variables (@var)
- Scope: Session-level (หายเมื่อ Disconnect)
- ชื่อขึ้นต้นด้วย
@(เช่น@total,@my_var) - ไม่ต้อง Declare ก่อนใช้ (Implicit declaration)
- Data Type ถูก Infer จากค่าที่ Assign
- ใช้ได้ใน WHERE, ORDER BY, LIMIT, และคำสั่งถัดไปใน Session เดียวกัน