어떻게 MySQL 질의에 Case를 추가합니까?

어떻게 MySQL 질의에 Case를 추가합니까?

2022-06-04 last update

6 minutes reading MySQL MariaDB
MySQL에서 CASE 문구는 특정 조건 세트를 실행하고 IF-ELSE를 사용하여 일치하는 CASE를 반환하는 순환을 처리하는 방법을 설명합니다.그것은 하나의 조건을 검증하는 제어 문장이다.만약 어떤 케이스가 TRUE인 것을 발견하면 값을 되돌려줍니다.대소문자가 일치하지 않으면 ELSE 값이 반환됩니다.다른 값이 정의되지 않으면 NULL로 돌아갑니다.
이 가이드에서는 MySQL의 CASE 문구를 자세히 설명합니다.

MySQL의 CASE 문


만약 이전에 any of the popular programming languages 에서 프로그래밍 경험이 있다면, CASE 문장은 틀림없이 익숙한 주제일 것입니다.구조는 다음과 같다.
CASE
WHEN  THEN
WHEN  THEN
ELSE
END
모든 부분을 빠르게 분해합시다.
  • <조건: 사례 진술에 필요한 조건을 평가합니다.
  • : 대소문자가 일치하는 결과입니다.
  • : 일치하는 사례를 찾지 못했을 때의 결과입니다.정의되지 않으면 CASE가 NULL로 돌아갑니다.
  • 자세히 살펴보면 구조는 전형적인 Java if-else logic structure 구조와 거의 같다.

    CASE 문 사용하기


    기본 용도
    CASE 응용 프로그램을 시연하기 위해 전용 MySQL 데이터베이스를 사용합니다.사용하기 편리하도록 phpMyAdmin을 사용하여 데이터베이스에 액세스하고 관리합니다.installing and configuring phpMyAdmin and MySQL on Ubuntu에 대한 자세한 내용을 확인하십시오.
    빈 데이터베이스hello\u 월드를 만들었습니다.

    우리의 예시 데이터베이스에는 학생에 대한 정보가 포함될 것이다.Students라는 새 테이블을 만듭니다.
    $ CREATE TABLE Students(ID int, Name varchar(255), State varchar(255), City varchar(255));

    이제 테이블에 예시 입력을 삽입합니다.
    $ INSERT INTO Students (ID, Name, State, City) VALUES ('1', 'Adrien', 'Arizona', 'Prescott');
    $ INSERT INTO Students (ID, Name, State, City) VALUES ('2', 'Alisha', 'Nebraska', 'Omaha');
    $ INSERT INTO Students (ID, Name, State, City) VALUES ('3', 'Brenda', 'Michigan', 'Detroit');
    $ INSERT INTO Students (ID, Name, State, City) VALUES ('4', 'Thompson', 'New York', '');
    $ INSERT INTO Students (ID, Name, State, City) VALUES ('5', 'David', '', 'Portland');

    마지막 시계는 이렇다.
    다음 쿼리와 출력을 보십시오.
    SELECT Name, State, City FROM Students ORDER BY (
    CASE
    WHEN State is NULL THEN City
    ELSE State
    END);

    CASE 문을 집선 함수와 함께 사용하기
    다음 예에서, 우리는 판매 정보를 포함하는 새로운 데이터베이스 테이블을 만들 것이다.이러한 정보에 근거하여 우리는 주문서의 상태에 따라 주문 수량을 계산할 것이다.이를 위해 SUM() 함수도 MySQL에서 사용됩니다.다음 지침은 깊이 있습니다the SUM() function in MySQL.
    새 테이블을 만듭니다.
    $ CREATE TABLE Orders (order_ID int, sales_ID int, status varchar(255));

    우리는 몇 가지 예시 데이터로 이 표를 채웁시다.
    $ INSERT INTO Orders (order_ID, sales_ID, status) VALUES ('5', '10', 'processing');
    $ INSERT INTO Orders (order_ID, sales_ID, status) VALUES ('8', '244', 'success');
    $ INSERT INTO Orders (order_ID, sales_ID, status) VALUES ('4', '274', 'processing');
    $ INSERT INTO Orders (order_ID, sales_ID, status) VALUES ('80', '452', 'success');
    $ INSERT INTO Orders (order_ID, sales_ID, status) VALUES ('10', '10000', 'processing');

    다음 코드는 성공과 처리의 실례를 통계할 것이다.
    SELECT
    SUM(CASE
    WHEN status = 'success' THEN 1
    ELSE 0
    END) AS 'Success count',
    SUM(CASE
    WHEN status = 'processing' THEN 1
    ELSE 0
    END) AS 'processing',
    COUNT(*) AS 'Sum total'
    FROM Orders;

    출력에서 보듯이 주문서의 상태에 따라 모든 주문서의 총계를 표시합니다.우선, CASE 문구가 실행되고 각각의 주문 상태와 일치할 때마다 1을 되돌려줍니다.마지막으로 SUM() 함수는 총 주문 수를 계산합니다.

    마지막 생각


    이 가이드에서는 MySQL에서 CASE 문구의 사용법을 설명합니다.간단히 말하면 SQL 쿼리에 대해 IF-ELSE 논리를 효과적으로 수행할 수 있는 논리적 문장입니다.우리는 어떻게 각종 상황에서 그것을 실현할 수 있는지 보여 주었다.CASE는 여러 개의 IF-ELSE 문구를 사용하는 것보다 코드를 더욱 읽기 쉽고 효율적으로 만듭니다.
    MySQL은 강력한 기능을 제공합니다.자세한 내용은 schema, DATEDIFF() function, working with substring 의 다음 안내서를 참조하십시오.
    즐거운 계산!