Computer >> Máy Tính >  >> Lập trình >> MySQL

Điều gì xảy ra nếu tôi gán giá trị cho biến người dùng MySQL bằng câu lệnh trả về nhiều hàng?


Trong trường hợp, nếu chúng ta gán giá trị cho biến người dùng bằng câu lệnh trả về nhiều hàng thì giá trị từ hàng cuối cùng sẽ được lưu trong biến người dùng đó vì biến người dùng có thể lưu giá trị đơn lẻ duy nhất. Theo dõi ví dụ, trong đó chúng tôi đang sử dụng dữ liệu từ bảng "Tender", sẽ hiển thị nó -

Ví dụ

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)

Tập hợp kết quả phía trên hiển thị dữ liệu từ bảng "Đấu thầu". Bây giờ chúng ta sẽ gán các giá trị trong

cột ‘companyname’ trong biến @name như sau -

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)

Tuy nhiên, bây giờ khi chúng ta tham chiếu đến biến này, nó chỉ cung cấp tên của công ty ở hàng cuối cùng. Đó là vì biến người dùng chỉ có thể lưu trữ một giá trị duy nhất.

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