추천수를 합계 내서 포인트 주려고 하는데요
맴버의 최근 5개만 합계 내려면
$sumSql = "select sum(wr_good) as point from $write_table where wr_is_comment = 0 and mb_id ='{$member[mb_id]}' limit 5";
$sumPoint = sql_fetch($sumSql);
$plusPoint = $sumPoint[point] ;
$sumPoint = sql_fetch($sumSql);
$plusPoint = $sumPoint[point] ;
이렇게 하면 맞나요?
그런데 이렇게 하면 맴버의 5개만이 아니고 모든 합계를 내는것 같아요
최근 5개만 합계 내려면 for 문으로 돌려야 하나요?
|
답변 2개 / 댓글 4개
채택된 답변
+20 포인트
limit 은 앞쪽 쿼리의 결과의 일부를 보여주는 역할을 합니다.
sum은 where 조건과 group by 등으로 합의 대상으로 정할 수 있지만,
limit 으로 제한된 결과의 합을 구하는 것은 아닙니다.
이렇게 하면 될것 같네요. ^^
Copy
$sumSql = "SELECT SUM(wr_good) AS point FROM (SELECT wr_good FROM $write_table WHERE wr_is_comment = 0 AND mb_id ='{$member[mb_id]}' ORDER BY wr_id DESC LIMIT 5) AS subquery";
답변에 대한 댓글 4개
답변을 작성하려면 로그인이 필요합니다.
그런데 그냥 기본적인 limit 걸은 쿼리문과 for 문으로 합계를 구하는것과 어떤것이 빠르고 서버부담이 없을까요?
채팅 비슷한거라 초당 여러번 쿼리 할 수 있거든요