คุณสามารถใช้คำสั่ง SET สำหรับการกำหนดตัวแปรชั่วคราวได้
ไวยากรณ์มีดังนี้
SET @anyVariableName=(เลือก yourColumnName จาก yourTableName WHERE yourCondition);
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามในการสร้างตารางมีดังนี้
mysql> สร้างตาราง tempVariableAssignment -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(20), -> Age int -> );Query OK, 0 แถวได้รับผลกระทบ (0.59 วินาที)
ตอนนี้แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก
mysql> แทรกลงในค่า tempVariableAssignment(Name,Age) ('John',25);Query OK, 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า tempVariableAssignment(Name,Age) ('Carol',26);แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> แทรกลงในค่า tempVariableAssignment (ชื่ออายุ) ('Sam', 28); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงใน tempVariableAssignment (ชื่อ, อายุ) values('David',19);ตกลง สืบค้น 1 แถวได้รับผลกระทบ (0.19 วินาที)mysql> แทรกลงใน tempVariableAssignment(Name,Age) values('Bob',23);Query OK, 1 แถวได้รับผลกระทบ (0.19 วินาที)ก่อน>แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
แบบสอบถามมีดังนี้
mysql> เลือก *จาก tempVariableAssignment;ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+---------+------+| รหัส | ชื่อ อายุ |+----+-------+------+| 1 | จอห์น | 25 || 2 | แครอล | 26 || 3 | แซม | 28 || 4 | เดวิด | 19 || 5 | บ๊อบ | 23 |+----+-------+------+5 แถวในชุด (0.00 วินาที)
นี่คือแบบสอบถามสำหรับการกำหนดตัวแปรชั่วคราว MySQL
mysql> set @findAge=(เลือกอายุจาก tempVariableAssignment โดยที่ Id=4);สืบค้นตกลง 0 แถวได้รับผลกระทบ (0.02 วินาที)
แสดงค่าของตัวแปร @findAge
แบบสอบถามมีดังนี้
mysql> เลือก @findAge;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----------+| @findAge |+----------+| 19 |+----------+1 แถวในชุด (0.01 วินาที)นี่คือข้อความค้นหาอื่น
mysql> เลือก Age INTO @anotherAge-> จาก tempVariableAssignment โดยที่ Id=4;Query OK, 1 แถวได้รับผลกระทบ (0.00 วินาที)
แสดงค่าตัวแปร @anotherAge
แบบสอบถามมีดังนี้
mysql> เลือก @anotherAge;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-------------+| @anotherAge |+-------------+| 19 |+-------------+1 แถวในชุด (0.00 วินาที)