>  기사  >  데이터 베이스  >  MySQL에서 if 문을 사용하는 방법

MySQL에서 if 문을 사용하는 방법

little bottle
little bottle앞으로
2019-04-28 13:18:0038567검색

Mysql의 if는 저장 프로시저에서 표현식이나 프로세스 제어 문으로 사용할 수 있습니다. 이 기사에서는 주로 mysql의 if 문을 사용하는 방법에 대해 설명합니다.

IF 표현식

IF(expr1,expr2,expr3)IF(expr1,expr2,expr3)

如果 expr1 是TRUE (expr1 a8093152e673feb7aba1828c43532094 0 and expr1 a8093152e673feb7aba1828c43532094 NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

select *,if(sva=1,"男","女") as ssva from taname where sva != ""

作为表达式的if也可以用CASE when来实现:

select CASE sva WHEN 1 THEN '男' ELSE '女' END as ssva from taname where sva != ''

在第一个方案的返回结果中, value=compare-value。而第二个方案的返回结果是第一种情况的真实结果。如果没有匹配的结果值,则返回结果为ELSE后的结果,如果没有ELSE 部分,则返回值为 NULL。

例如:

SELECT CASE 1 WHEN 1 THEN 'one'
  WHEN 2 THEN 'two' 
   ELSE 'more' ENDas testCol

将输出one

IFNULL(expr1,expr2)

假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

mysql> SELECT IFNULL(1,0);
        -> 1mysql> SELECT IFNULL(NULL,10);
        -> 10mysql> SELECT IFNULL(1/0,10);
        -> 10mysql> SELECT IFNULL(1/0,'yes');
        -> 'yes'

IFNULL(expr1,expr2)

expr1이 TRUE(expr1 a8093152e673feb7aba1828c43532094 0 및 expr1 a8093152e673feb7aba1828c43532094 NULL)인 경우 IF()는 다음 값을 반환합니다. expr2이고, 그렇지 않으면 반환 값은 expr3입니다. IF()의 반환 값은 상황에 따라 숫자 값 또는 문자열 값입니다.

IF search_condition THEN 
    statement_list  
[ELSEIF search_condition THEN]  
    statement_list ...  [ELSE 
    statement_list]  END IF

if는 다음과 같은 경우 CASE를 사용하여 표현식으로 구현할 수도 있습니다.

create procedure dbname.proc_getGrade  
(stu_no varchar(20),cour_no varchar(10))  BEGIN declare stu_grade float;  
select grade into stu_grade from grade where student_no=stu_no and course_no=cour_no;  
if stu_grade>=90 then 
    select stu_grade,&#39;A&#39;;  elseif stu_grade<90 and stu_grade>=80 then 
    select stu_grade,&#39;B&#39;;  elseif stu_grade<80 and stu_grade>=70 then 
    select stu_grade,&#39;C&#39;;  elseif stu_grade70 and stu_grade>=60 then 
    select stu_grade,&#39;D&#39;;  else 
    select stu_grade,&#39;E&#39;;  end if;  END

첫 번째 솔루션의 반환 결과에서 value=compare-value. 두 번째 시나리오의 반환 결과는 첫 번째 시나리오의 실제 결과입니다. 일치하는 결과 값이 없으면 ELSE 이후의 결과가 반환됩니다. ELSE 부분이 없으면 반환 값은 NULL입니다.

예:

rrreee

는 다음을 출력합니다

IFNULL(expr1,expr2)

expr1이 NULL이 아닌 경우 IFNULL()의 반환 값은 expr1입니다. 그렇지 않으면 반환 값은 expr2입니다. IFNULL()의 반환 값은 사용되는 컨텍스트에 따라 숫자 또는 문자열입니다. rrreee

IFNULL(expr1,expr2) 기본 결과 값은 STRING, REAL 또는 INTEGER 순서로 두 표현식 중 더 "일반적인" 값입니다. 🎜🎜IF ELSE는 조건 판단을 구현하고 다양한 조건이 충족될 때 다른 작업을 수행하는 🎜🎜if로 사용됩니다. 프로그래밍을 배우면 if의 역할을 모두 살펴보겠습니다. mysql 저장 프로시저에서 사용하는 방법. 🎜rrreee🎜는 PHP의 IF 문과 유사합니다. IF의 search_condition이 true이면 THEN 뒤의statement_list 문이 실행되고, 그렇지 않으면 ELSEIF의 조건이 true이면 후속 문_list 문이 실행됩니다. 그렇지 않으면 다른 지점이 계속해서 심사를 받습니다. 모든 분기의 조건이 충족되지 않으면 ELSE 분기가 실행됩니다. search_condition은 조건식으로 "=, 91eef5681cad6f0cc96f9adeb2931b45, >=, !=" 등의 조건 연산자로 구성할 수 있으며, AND, OR, NOT을 사용하여 여러 표현식을 결합할 수 있습니다. 🎜🎜예를 들어, 학생 번호(student_no)와 과목 번호(course_no)를 통해 학생의 성적(학년)을 쿼리하고 성적이 90점보다 높은 사람은 A등급이고, 그 성적이 반환되는 저장 프로시저를 만듭니다. 90점 미만은 80점 이상은 B등급, 80점 미만 70점 이상은 C등급, E등급으로 진행됩니다. 그런 다음 저장 프로시저를 생성하는 코드는 다음과 같습니다. 🎜rrreee🎜참고: IF는 명령문이며 명령문의 끝을 나타내려면 END IF 뒤에 세미콜론 ";"을 추가해야 합니다. CASE, LOOP 등과 같은 문 🎜🎜관련 튜토리얼: 🎜mysql 비디오 튜토리얼🎜🎜

위 내용은 MySQL에서 if 문을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제