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

저장 프로시저에서 MySQL IF ELSE 문을 어떻게 사용할 수 있습니까?


MySQL ELSE인 경우 문은 표현식이 false로 평가될 때 기본 조건부 구성을 구현합니다. 구문은 다음과 같습니다 -

IF 표현식 THEN 문;ELSE else 문;END IF;

문장은 세미콜론으로 끝나야 합니다.

IF ELSE 사용 시연 MySQL 저장 프로시저 내에서 명령문을 사용하여 아래와 같이 'student_info'라는 테이블의 값을 기반으로 하는 다음 저장 프로시저를 생성합니다 -

mysql> 선택 * from student_info;+------+------+------------+--------- ---+| 아이디 | 이름 | 주소 | 제목 |+--------+---------+------------+------------+| 101 | 야쉬팔 | 암리차르 | 역사 || 105 | 가우라프 | 자이푸르 | 문학 || 125 | 라만 | 심라 | 컴퓨터 |+------+---------+------------+------------+3행 세트 (0.00초)

다음 쿼리는 IF ELSE 문이 포함된 'coursedetails_IFELSE'라는 프로시저를 생성합니다. −

mysql> DELIMITER //;mysql> CREATE PROCEDURE Coursedetails_IFELSE(IN S_Subject Varchar(20), OUT S_Course varchar(50)) -> BEGIN -> DECLARE Sub Varchar(20); -> SELECT 주제 INTO SUB -> FROM Student_info WHERE S_Subject =주제; -> IF Sub ='컴퓨터' THEN -> SET S_Course ='B.Tech(CSE)'; -> ELSE -> SET S_Course ='제목이 테이블에 없음'; -> END IF; -> END //쿼리 OK, 영향을 받는 행 0개(0.00초)

이제 이 프로시저를 호출할 때 아래 결과를 볼 수 있습니다.

mysql> 구분자; //mysql> CALL Coursedetails_IFELSE('Computers', @S_Course);쿼리 OK, 1행 영향(0.00초)mysql> @S_Course 선택;+-------------+| @S_Course |+-------------+| B.Tech(CSE) |+-------------+1 row in set (0.00 sec)mysql> CALL Coursedetails_IFELSE ('History', @S_Course);Query OK, 영향을 받는 행 0( 0.00초)mysql> @S_Course 선택;+--------------------------------+| @S_Course |+--------------------------------+| Subject Not in the table |+--------------------------------+1 row in set (0.00초)