미채택 완료

쿼리문 배열 합계 질문드립니다.

2022-04-27 (수) 14:33:02 5,415

wr_32 = 1000||2000||3000||5000

지금은 합산을 쿼리문이 아니라 php에서 하고 있습니다.

Copy
$sql = "select count(*) cnt, group_concat(wr_32 separator '||') wr_32 from {$write_table}";

    $result = sql_query($sql);
    while ($row = sql_fetch_array($result)) {

$counts_sum = array_sum(explode('||',str_replace(',', '', $row['wr_32'])));

}

php문이 아닌 쿼리문에서 배열로 들어있는 값의 합계는 어떻게 해야 하나요?

|

답변 2개 / 댓글 3개

wr_32가 1000||2000||3000||5000 이렇게 4개로 일정하다면

Copy
$sql = " SELECT *, SUBSTRING_INDEX(SUBSTRING_INDEX(wr_32, '||', -4), '||', 1) + SUBSTRING_INDEX(SUBSTRING_INDEX(wr_32, '||', -3), '||', 1) + SUBSTRING_INDEX(SUBSTRING_INDEX(wr_32, '||', -2), '||', 1) 
+ SUBSTRING_INDEX(SUBSTRING_INDEX(wr_32, '||', -1), '||', 1)  FROM {$write_table} ";

답변에 대한 댓글 1개

wr_32의 값이 0개부터 50개까지 있는지라... ㅠㅠ
2022-04-27 (수) 15:35:40
group_concat(wr_32 separator '||')

이걸 

sum(wr_32)

로 한번 해보세요~

답변에 대한 댓글 2개

sum으로 하면 값이.. 맞지가 않습니다.
그럴 리가요.
wr_32를 int로 데이터 타입을 바꾸시거나
casting해서 sum을 구해보세요.

답변을 작성하려면 로그인이 필요합니다.