เก็บผลลัพธ์ Query ไว้ใน User Variable (@variable)
ใช้คำสั่ง SET @var = (subquery) เพื่อกำหนดค่าตัวแปรจากผลลัพธ์ของคำสั่ง SELECT
รูปแบบคำสั่ง (Syntax)
SET @variable_name = (SELECT column FROM table WHERE condition);
ตัวอย่างการใช้งาน
สร้างตาราง UserVariable:
CREATE TABLE UserVariable (
Id INT,
Name VARCHAR(100)
);
INSERT INTO UserVariable VALUES
(101, 'John'),
(200, 'Tom'),
(500, 'Carol');
ขั้นตอนที่ 1: หา Id สูงสุด เก็บใน @Maxid
SET @Maxid = (SELECT MAX(Id) FROM UserVariable);
ขั้นตอนที่ 2: หา Name ที่มี Id สูงสุด เก็บใน @Name
SET @Name = (SELECT Name FROM UserVariable WHERE Id = @Maxid);
ขั้นตอนที่ 3: ตรวจสอบค่าในตัวแปร
SELECT @Name;
ผลลัพธ์:
| @Name |
|---|
| Carol |
การใช้งานแบบรวมขั้นตอน (Single Statement)
SELECT @Name := Name FROM UserVariable
WHERE Id = (SELECT MAX(Id) FROM UserVariable);
ประโยชน์ของ User Variables:
- ใช้ค่าระหว่างคำสั่งหลายคำสั่งใน Session เดียวกัน
- ลดความซับซ้อนของ Subquery ซ้อนกัน
- ใช้ใน Stored Procedure, Trigger, หรือ Script ได้
- ตัวแปรมี Scope เป็น Session (หายเมื่อ Disconnect)