테스트 사이트 - 개발 중인 베타 버전입니다

쿼리문 배열 합계 질문드립니다. 채택완료

예서제이 3년 전 조회 5,251

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

 

 

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

</p>

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

<p>    $result = sql_query($sql);

    while ($row = sql_fetch_array($result)) {</p>

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

<p>}</p>

<p>

 

 

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

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

답변 2개

핑크빈
3년 전

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

 

</p>

<p>$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} ";</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

예서제이
3년 전
wr_32의 값이 0개부터 50개까지 있는지라... ㅠㅠ

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

3년 전
group_concat(wr_32 separator '||')

이걸 

 

sum(wr_32)

 

로 한번 해보세요~

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

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

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

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

로그인