การใช้ User-Defined Variables ใน MySQL
MySQL รองรับตัวแปรผู้ใช้ (User Variables) ที่ขึ้นต้นด้วย @ สามารถเก็บค่าจากคำสั่ง SELECT ไว้ใช้ในคำสั่งต่อไปได้
ตัวอย่างการใช้งาน
CREATE TABLE DemoTable2013 (Name VARCHAR(20));
INSERT INTO DemoTable2013 VALUES
('Chris'), ('David'), ('Mike'), ('Sam'), ('Bob');
-- เก็บจำนวนแถวไว้ในตัวแปร
SET @query := (SELECT COUNT(*) FROM DemoTable2013);
-- ใช้ตัวแปรในเงื่อนไข WHERE
SELECT Name
FROM DemoTable2013
WHERE (@query := @query - 1) = 0;
ผลลัพธ์
| Name |
|---|
| Bob |
คำอธิบาย: ตัวแปร @query เริ่มต้นที่ 5 (จำนวนแถว) ทุกแถวที่ตรวจสอบจะลดค่าลง 1 จนเหลือ 0 ที่แถวสุดท้าย (Bob) จึงได้เฉพาะแถวนั้น
ข้อควรระวัง: ลำดับการประเมินตัวแปรใน WHERE อาจแตกต่างไปในเวอร์ชันต่างๆ ควรทดสอบก่อนนำไปใช้ใน Production