如果我使用返回多行的语句为 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)