如果我使用返回多行的语句为MySQL用户变量分配值会发生什么?
如果我们使用返回多行的语句为用户变量分配值,那么最后一行的值将保存在该用户变量中,因为用户变量只能保存单个值。下面的示例使用来自表“Tender”的数据来说明它-
阅读更多:MySQL 教程
示例
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 |
+----+---------------+--------------+
5 rows in set (0.04 sec)
上面的结果集显示了来自表“Tender”的数据。现在我们将如下所示的值分配到变量@name的列“companyname”中-
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)
但是,现在当我们引用这个变量时,它只给出了最后一行的公司名称。这是因为用户变量只能存储一个值。
mysql> Select @name;
+-------------+
| @name |
+-------------+
| Honda group |
+-------------+
1 row in set (0.00 sec)