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

MySQL 테이블의 일부 조건에 따라 값을 선택하는 저장 프로시저를 생성하려면 어떻게 해야 합니까?


어떤 조건에 따라 MySQL 테이블에서 레코드를 선택하기 위해 IN 및 OUT 연산자를 사용하여 저장 프로시저를 만들 수 있습니다. 이해를 돕기 위해 다음 데이터가 있는 '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초)

이제 다음과 같이 조건으로 제공하려는 값을 사용하여 프로시저를 호출합니다. −

<미리>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초)