如果我將一個值分配給一個 MySQL 使用者變數,該值使用返回多行的語句,接下來會發生什麼?


如果使用返回多行的語句將一個值分配給一個使用者變數,那麼最後一行中的值將儲存在該使用者變數中,因為使用者變數只能儲存單個值。以下面的例子為例,我們使用的是表“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)

更新日期: 2020 年 6 月 20 日

156 次瀏覽

職業生涯加速發展

透過完成課程獲得認證

立即開始
廣告
© . All rights reserved.