如果我使用返回多行的语句为 MySQL 用户变量分配一个值,会发生什么情况?

mysqlmysqli database

如果我们使用返回多行的语句为用户变量分配一个值,那么最后一行的值将保存在该用户变量中,因为用户变量只能保存单个值。按照我们使用表"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 |
+----+---------------+--------------+
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)

相关文章