본문 바로가기
MySql

MySQL mysql의 저장 프로 시저에서 여러 행을 검색하는 방법은 무엇입니까?

by 베이스 공부 2020. 9. 26.
반응형

저장 프로 시저를 통해 필드를 가져 오려고하는데 다음 쿼리를 사용했습니다. 여러 행을 가져 오려고했지만 단일 행이있는 경우에만 결과를 성공적으로 실행합니다. 그렇지 않으면 아래에서 언급했듯이 오류가 반환됩니다.

delimiter ;;
    drop procedure if exists Sample1;;
    CREATE PROCEDURE Sample1(IN lft1 INT,IN rgt1 INT, OUT emp1 VARCHAR(20))
    BEGIN
    SELECT  p.emp into emp1 FROM personnell p WHERE p.lft>lft1  and p.rgt < rgt1 LIMIT 10;
    END;;
    call Sample1(1,10,@emp);;
    select @emp;
MySQL said: Documentation
#1172 - Result consisted of more than one row 

참고

-----
Sample1--- procedure name;
emp -----selected field from table personnell
lft -----use to check the condition,it is also one of the field of table personnell
personnell------table name

 

해결 방법

 

절차에 오류가 없습니다. 쿼리에 오류가 있습니다. 하나 이상의 행을 반환하지만 여러 결과를 스칼라 값 'emp1'으로 설정할 수 없습니다.

한 행을 반환하도록 쿼리를 제한해야합니다.

mysql의 저장 프로 시저에서 여러 행을 검색하는 방법

 

참조 페이지 https://stackoverflow.com/questions/8307939

 

 

반응형

댓글