쪽지부분 sql 질문이요~

쪽지부분 sql 질문이요~

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

쪽지부분 sql 질문이요~

본문

받는쪽지, 보낸쪽지를 구분하지 않고 한번에 통합시키려고 합니다

여차저차 삽질을 해서

$sql = "select * from 
            (select a.*, CONCAT(me_send_mb_id, ' to ',me_recv_mb_id) as test1 
            from g5_memo a where a.me_recv_mb_id = '{$member[mb_id]}' or a.me_send_mb_id = '{$member[mb_id]}'
            order by a.me_id desc) as memo group by test1 order by memo.me_id desc";

이렇게 리스트를 불러왔는데

서로 쪽지를 주고받았다면 A가 B에게 보낸 쪽지, B가 A에게 보낸쪽지 총 2개가 출력되더라구요

for($i=0; $i<count($memo); $i++) {
    if($memo[$i][me_send_mb_id] == $memo[$i][me_recv_mb_id]) continue;    
    if($memo[$i][me_send_mb_id] == $member[mb_id]) { 
        $temp[$i] = $memo[$i][me_recv_mb_id];                           
                                                                           
        for($j=0; $j<count($memo); $j++) {
            if($memo[$j][me_send_mb_id] == $temp[$i]) {                    
                $i_datetime = strtotime($memo[$i][me_send_datetime]);   
                $j_datetime = strtotime($memo[$j][me_send_datetime]);   
                
                if($i_datetime > $j_datetime) {                          
                    array_push($del_memo, $j);                           
                } else if($i_datetime < $j_datetime) {       
                    array_push($del_memo, $i);                           
                }
            }
        }
    }
}
for($i=0; $i<count($del_memo); $i++) {
    unset($memo[$del_memo[$i]]);
}
$memo = array_values($memo);

그래서 위 코드로 php상에서 쪽지 발송시간을 기준으로 더 오래된 쪽지는 삭제해서 중복을 제거했는데요.

 

이렇게 겨우 만들긴했는데 쪽지의 양이 많을경우엔 속도가 너무 느려가지고

페이징처리를 하려고하는데요

sql에서 정리를해서 받아오는게아니라 php에서 정리를 하기때문에

sql 상에서 count로 전체레코드 갯수 받아오는거랑 리스트에 들어있는 쪽지들 갯수랑 맞지가 않아서 페이징처리가 힘드네요

 

php로 중복제거할 필요 없이 sql로만 중복되는걸 제외하고 불러올수 있을까요?

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
전체 53
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. (중고) 하드디스크 750G , 2.5 인치

    참여1 회 시작19.07.23 20:21 종료19.07.28 20:21
  2. (중고) 씨게이트 하드디스크 1테라

    참여17 회 시작19.07.23 01:18 종료19.07.28 01:18

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT