둘 다 IN을 사용하여 저장 프로시저를 만들 수 있습니다. 그리고 OUT 매개변수를 사용하여 MySQL 테이블에서 여러 값을 가져옵니다. 이해를 돕기 위해 다음 데이터가 있는 'student_info'라는 테이블의 예를 들어보겠습니다. -
mysql> 선택 * from student_info;+------+---------+------------+--------- ---+| 아이디 | 이름 | 주소 | 제목 |+--------+---------+------------+------------+| 101 | 야쉬팔 | 암리차르 | 역사 || 105 | 가우라프 | 자이푸르 | 문학 || 110 | 라훌 | 찬디가르 | 역사 || 125 | 라만 | 방갈로르 | 컴퓨터 |+------+---------+------------+------------+4행 세트 (0.01초)
이제 다음과 같이 'select_studentinfo'라는 프로시저를 생성하여 'id' -
값을 제공하여 'student_info' 테이블에서 값을 선택할 수 있습니다.mysql> DELIMITER //;mysql> Create Procedure Select_studentinfo ( IN p_id INT, OUT p_name varchar(20),OUT p_address varchar(20), OUT p_subject varchar(20)) -> BEGIN -> SELECT 이름, 주소, 주제 INTO p_name, p_address, p_subject -> FROM 학생 정보 -> WHERE id =p_id; -> END //쿼리 OK, 영향을 받은 행 0개(0.03초)
위 쿼리에서 1개의 IN 매개변수와 함께 4개의 OUT 매개변수도 사용합니다. 이제 다음과 같이 조건으로 제공하려는 값으로 프로시저를 호출합니다. -
<미리>mysql> DELIMITER; //mysql> CALL Select_studentinfo(110, @p_name, @p_address, @p_subject);Query OK, 1행 영향(0.06초)mysql> Select @p_name AS Name,@p_Address AS Address, @p_subject AS Subject;+-- ------+------------+-----------+| 이름 | 주소 | 제목 |+--------+------------+----------+| 라훌 | 찬디가르 | 기록 |+--------+------------+-----------+세트의 행 1개(0.00초)