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

MySQL 함수에서 테이블을 반환하는 방법은 무엇입니까?

<시간/>

MySQL 함수에서 테이블을 반환할 수 없습니다. 함수는 string, integer, char 등을 반환할 수 있습니다. MySQL에서 테이블을 반환하려면 함수가 아닌 저장 프로시저를 사용하십시오.

먼저 테이블을 생성하겠습니다 -

mysql> Create table DemoTable696 ( Id int, Name varchar(100));Query OK, 영향을 받는 행 0개(0.77초)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable696 values(100,'Mike');Query OK, 1개의 row가 영향을 받았습니다(0.14초)mysql> insert into DemoTable696 values(101,'Sam');Query OK, 1개의 row가 영향을 받았습니다(0.17초) )mysql> insert into DemoTable696 values(102,'Adam');Query OK, 1개의 row가 영향을 받습니다(0.14초)mysql> insert into DemoTable696 values(103,'Carol');Query OK, 1개의 row가 영향을 받습니다. /사전> 

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> 선택 *from DemoTable696;

그러면 다음과 같은 출력이 생성됩니다. -

+------+-------+| 아이디 | 이름 |+------+-------+| 100 | 마이크 || 101 | 샘 || 102 | 아담 || 103 | 캐롤 |+------+-------+4행 세트(0.00초)

다음은 MySQL에서 테이블을 반환하는 쿼리입니다.

저장 프로시저는 다음과 같습니다 -

mysql> DELIMITER //mysql> CREATE PROCEDURE getResultSet(studId int ) BEGIN select *from DemoTable696 where Id=studId; END //쿼리 OK, 영향을 받은 행 0개(0.14초)mysql> DELIMITER;

이제 call 명령을 사용하여 저장 프로시저를 호출할 수 있습니다 -

mysql> getResultSet(103) 호출;

그러면 다음과 같은 출력이 생성됩니다. -

+------+-------+| 아이디 | 이름 |+------+-------+| 103 | Carol |+------+-------+1 row in set (0.00 sec)Query OK, 영향을 받는 0 row (0.01 sec)