반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL PHP-SELECT WHERE id = array ()? (0) | 2020.09.19 |
---|---|
MySQL 사용자 정보와 사용자 로그인 및 암호를 가장 잘 저장하는 방법 (0) | 2020.09.19 |
MySQL 원격 서버에 연결 MySQL 문제 (0) | 2020.09.19 |
MySQL bind_param을 사용하여 MySQLi에서 MySQL NOW () 함수로 레코드를 삽입하는 방법은 무엇입니까? (0) | 2020.09.19 |
MySQL trigger/procedure execution delay (0) | 2020.09.19 |
댓글