MySQL 쿼리에서 IF 조건으로 계산
귀하의 목표는 뉴스 기사에 대해 승인된 댓글 수를 검색하는 것입니다. 그러나 현재 쿼리는 특정 기사에 대한 댓글이 없더라도 댓글 열에 대해 최소값 1을 반환합니다.
이 문제를 해결하려면 count() 함수를 sum()으로 바꾸세요. 귀하의 쿼리. 자세한 내용을 살펴보겠습니다.
SELECT ccc_news . * , SUM(if(ccc_news_comments.id = 'approved', 1, 0)) AS comments FROM ccc_news LEFT JOIN ccc_news_comments ON ccc_news_comments.news_id = ccc_news.news_id WHERE `ccc_news`.`category` = 'news_layer2' AND `ccc_news`.`status` = 'Active' GROUP BY ccc_news.news_id ORDER BY ccc_news.set_order ASC LIMIT 20
작동 방식:
sum() 함수는 모든 TRUE 표현식을 1로 평가하고 FALSE 표현식을 0으로 평가하여 효과적으로 반환합니다. 승인된 총 댓글 수입니다.
이 업데이트된 쿼리는 이제 정확한 개수를 제공하여 각 뉴스 기사에 승인된 댓글이 있는지 여부를 보여줍니다.
위 내용은 SUM()을 사용하여 MySQL에서 승인된 댓글을 정확하게 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!