ใน MySQL สามารถประกาศและใช้ตัวแปรผู้ใช้ (User-defined Variables) ได้โดยใช้เครื่องหมาย @ นำหน้าชื่อตัวแปร ตัวแปรเหล่านี้มีขอบเขต (Scope) ระดับ Session และสามารถใช้ในคำสั่ง SQL ต่างๆ ได้
รูปแบบคำสั่ง
SET @variableName := value;
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มข้อมูล:
mysql> create table DemoTable1331 (Id int, Name varchar(20)); mysql> insert into DemoTable1331 values(10,'Chris'),(101,'David'),(40,'Bob'),(30,'Mike'),(60,'John');
ข้อมูลในตาราง:
+------+-------+ | Id | Name | +------+-------+ | 10 | Chris | | 101 | David | | 40 | Bob | | 30 | Mike | | 60 | John | +------+-------+
ใช้ตัวแปร @Value ในเงื่อนไข WHERE
mysql> set @Value:=40; mysql> select * from DemoTable1331 where Id > @Value;
ผลลัพธ์ (เฉพาะ Id > 40)
+------+-------+ | Id | Name | +------+-------+ | 101 | David | | 60 | John | +------+-------+
คำอธิบายเพิ่มเติม:
- ใช้
:=สำหรับการกำหนดค่าในSET(เพื่อไม่ให้สับสนกับการเปรียบเทียบ=ใน SELECT) - ตัวแปร @ ใช้ได้ในทุกคำสั่งภายใน Session เดียวกัน
- สามารถใช้ในคำนวณ เช่น
SET @total := @price * @qty; - ชื่อตัวแปรไม่ควรซ้ำกับชื่อคอลัมน์/คำสงวน