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

เกิดอะไรขึ้นถ้ากำหนดค่าให้ user variable ด้วยคำสั่งที่คืนหลายแถว

User variable เก็บได้แค่ค่าเดียว - จะเก็บค่าจากแถวสุดท้าย

หากกำหนดค่าให้ user variable โดยใช้คำสั่งที่คืนหลายแถว ค่าจาก แถวสุดท้าย จะถูกเก็บในตัวแปรนั้น เพราะ user variable เก็บค่าได้เพียงค่าเดียว

ตัวอย่าง

ข้อมูลตาราง Tender:

mysql> select * from Tender;
+----+---------------+--------------+
| Sr | CompanyName   | Tender_value |
+----+---------------+--------------+
| 1  | Abc Corp.     | 250.369003   |
| 2  | Khaitan Corp. | 265.588989   |
| 3  | Singla group. | 220.255997   |
| 4  | Hero group.   | 221.253006   |
| 5  | Honda group   | 225.292266   |
+----+---------------+--------------+

กำหนดค่า companyname ให้ @name (คืน 5 แถว):

mysql> Select @name := companyname from tender;
+----------------------+
| @name := companyname |
+----------------------+
| Abc Corp.            |
| Khaitan Corp.        |
| Singla group.        |
| Hero group.          |
| Honda group          |
+----------------------+
5 rows in set (0.00 sec)

แต่ตอนอ้างอิง @name จะได้แค่ค่าแถวสุดท้าย:

mysql> Select @name;
+-------------+
| @name       |
+-------------+
| Honda group |
+-------------+
1 row in set (0.00 sec)