Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การกำหนดตัวแปรชั่วคราว MySQL?


คุณสามารถใช้คำสั่ง 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 วินาที)