MySQL query to return number 'zero' if no results

前端 未结 3 1676
孤独总比滥情好
孤独总比滥情好 2021-01-18 20:13

When selecting a DATE and that date does not exist in my table it currently will return an empty result set. How can I be able to return the number zero for those empty res

3条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-18 20:18

    I think it would be easier to handle the empty result set on the PHP side (count the returned rows). If you want to handle it in the database, you should create a stored procedure.

    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
    

提交回复
热议问题