Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

여러 행을 반환하는 명령문을 사용하여 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)