programing

레코드가 없는 경우 MySQL SUM 쿼리 반환을 null이 아닌 0으로 만들려면 어떻게 해야 합니까?

powerit 2023. 10. 15. 18:09
반응형

레코드가 없는 경우 MySQL SUM 쿼리 반환을 null이 아닌 0으로 만들려면 어떻게 해야 합니까?

선택한 쿼리는 다음과 같습니다.

SELECT SUM(rating) AS this_week 
FROM table_name 
WHERE UNIX_TIMESTAMP(created_at) >= UNIX_TIMESTAMP() - 604800)

이것은 기본적으로 마지막 주에 대한 항목의 등급을 계산합니다(604800은 1주 동안의 초 단위).

문제는 테이블에 행이 없을 때 this_week는 NULL로 반환된다는 것입니다. 테이블에 행이 없을 경우 쿼리에서 0을 반환했으면 합니다.어떻게 하죠?

이렇게 하면 효과가 있을 것입니다.

SELECT COALESCE(SUM(rating),0) AS this_week FROM table_name 
  WHERE UNIX_TIMESTAMP(created_at) >= UNIX_TIMESTAMP() - 604800)

COALESCE는 목록에서 NULL이 아닌 첫 번째 값을 반환하는 함수입니다.

사용할수없나요IFNULL(SUM(rating), 0)?

이거 해보세요 : SUM(IFNULL(등급, 0))

언급URL : https://stackoverflow.com/questions/1318640/how-can-i-make-a-mysql-sum-query-return-zero-instead-of-null-if-there-are-no-rec

반응형