본문 바로가기
MySql

MySQL 결과가 없으면 숫자 '0'을 반환하는 MySQL 쿼리

by 베이스 공부 2020. 9. 19.
반응형

DATE를 선택하고 해당 날짜가 내 테이블에 존재하지 않으면 현재 빈 결과 집합을 반환합니다. 대신 빈 결과 집합에 대해 숫자 0을 반환 할 수있는 방법은 무엇입니까? :

    SELECT SUM(TOTAL), SUM(5STAR), STORE, DATE
    FROM `table` WHERE DATE >= '2012-02-24' GROUP BY TOTAL

MySQL returned an empty result set (i.e. zero rows)

대신 SUM (TOTAL) SUM (5STAR) (행이 0 인 경우)의 결과를 숫자 0으로 반환하고 싶습니다.

전체 테이블 구조 :

 

해결 방법

 

PHP 측에서 빈 결과 세트를 처리하는 것이 더 쉬울 것이라고 생각합니다 (반환 된 행 수 계산). 데이터베이스에서 처리하려면 저장 프로 시저를 만들어야합니다.

DELIMITER $$

CREATE PROCEDURE `mc`.`new_routine` (IN DT DATETIME)
BEGIN

IF EXISTS (SELECT 1 FROM `table` WHERE DATE >= @DT)
THEN
    SELECT SUM(TOTAL) AS SumTotal, SUM(5STAR) AS Sum5Star, STORE, `DATE`
    FROM `table`
    WHERE DATE >= @DT
    GROUP BY TOTAL;
ELSE
    SELECT 0 AS SumTotal, 0 AS Sum5Star, NULL AS STORE, NULL AS `DATE`;
END IF;

END

 

참조 페이지 https://stackoverflow.com/questions/9487963

 

 

반응형

댓글