MySQL 흐름 제어 기능을 사용하는 방법

WBOY
풀어 주다: 2023-05-28 15:58:17
앞으로
951명이 탐색했습니다.

MySQL에서 프로세스 제어 함수는 저장 프로시저나 함수의 실행 흐름을 제어할 수 있는 명령문을 의미합니다. 다음은 일반적으로 사용되는 몇 가지 프로세스 제어 함수입니다.

1. IF 함수

는 IF……ELSE…

# 如果expr1为true,则返回expr2,否则返回expr3
IF(expr1,expr2,expr3)
로그인 후 복사

IF ​​함수는 다음과 같이 삼항 연산자와 매우 유사하다는 것을 알 수 있습니다.

		// 比较最大数
        int a=10;
        int b=5;
        // 比较
        int bigNum=a>b?a:b;
로그인 후 복사

즉, IF 함수의 세 매개변수 중 expr1은 조건식이고 최종 결과는 true 또는 false 조건이 true(true)이면 expr2를 반환하고, 조건이 true(false)이면 expr3을 반환합니다. 예:

SELECT IF(10>5,10,5) AS bigNum;
로그인 후 복사

MySQL 흐름 제어 기능을 사용하는 방법

2. IFNULL 함수

도 IF의 효과를 얻습니다...

# 如果expr1不为NULL,则返回expr1,否则返回expr2
IFNULL(expr1,expr2)
로그인 후 복사

는 원래 조건식을 expr1이 null인지 여부를 결정하는 조건식으로 변환합니다. null이 아니면 그 자체(expr1)입니다. 비어 있으면 expr2를 표시합니다. 비어 있고(true) 비어 있지 않으면(false) expr3을 표시합니다

3.CASE functionMySQL 흐름 제어 기능을 사용하는 방법

case 함수에는 두 가지 다른 효과가 있습니다

switch case

java의 switch case 효과와 동일합니다. 즉, switch의 변수 표현식 값을 케이스 뒤의 상수와 비교합니다.

SELECT IFNULL(null,'不空') AS notNull
로그인 후 복사

SQL로 표현:

SELECT IF(null IS NULL,null,'不空') AS notNull
로그인 후 복사

함수 구조

case 판단할 변수(필드) 또는 표현식

상수 1이면 표시할 값 1(또는 명령문 1);MySQL 흐름 제어 기능을 사용하는 방법상수 2이면 값 2(또는 명령문 2)를 표시합니다.

......

else 값 n 또는 명령문 n을 표시합니다.

end


참고:



은 Java와 다릅니다. 스위치 대신 대소문자를 직접 작성합니다. 그리고 중괄호는 없습니다

경우에는 콜론을 쓰지 않고 직접 상수 값을 추가하고, then을 사용하세요
  • 그 뒤에 표시된 값이 있으면 세미콜론을 추가할 필요가 없습니다. then 뒤에는 세미콜론을 추가해야 합니다.
  • when……then…… 여러 개의 문이 있을 수 있습니다.
  • 기본값은 else입니다.
  • 은 end
  • 로 끝납니다. 4. 다중 IF
  • 는 Java의 다중 if 판단과 유사합니다.

    		int week=3;
            switch (week){
                case 1:
                    System.out.println("星期一");
                    break;
                case 2:
                    System.out.println("星期二");
                    break;
                case 3:
                    System.out.println("星期三");
                    break;
                case 4:
                    System.out.println("星期四");
                    break;
                case 5:
                    System.out.println("星期五");
                    break;
                case 6:
                    System.out.println("星期六");
                    break;
                case 7:
                    System.out.println("星期日");
                    break;
                default:
                    System.out.println("非法数据");
                    break;
            }
    로그인 후 복사

    SQL로 표현:
  • # NOW()函数用于获取当前日期和时间,
    # WEEKDAY(date)函数,表示返回date对应的工作日索引,
    # 因为索引从0开始,所以加1;也可以不加1,将when的常量改为工作日索引也可
    SELECT CASE WEEKDAY(NOW())+1
    	WHEN 1 THEN '星期一'
    	WHEN 2 THEN '星期二'
        WHEN 3 THEN '星期三'
        WHEN 4 THEN '星期四'
        WHEN 5 THEN '星期五'
        WHEN 6 THEN '星期六'
        WHEN 7 THEN '星期日'	
    	ELSE '非法数据'
    END AS `week`;
    로그인 후 복사

    함수 구조:

    case

    조건 1이면 값 1 또는 명령문 1이 표시되고,MySQL 흐름 제어 기능을 사용하는 방법조건 2이면 값 2 또는 명령문 2가 표시됩니다.

    . .....

    else 표시할 값 n 또는 명령문 n

    end


    참고:



    case

    다음에는 조건이 없으며 조건이 뒤에 오면 결과는 true 또는 false입니다. 조건이 충족되면 then 을 실행하고 다음 값이나 문을 표시합니다.
    • 마찬가지로 then 뒤에 표시된 값이 있으면 세미콜론을 추가할 필요가 없습니다. then 뒤에 문이 있으면 세미콜론은 다음과 같습니다. 필수의.

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

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿