Extra Form
PHP PHP 7.3
CMS XpressEngine

데이터베이스에서 수정된 댓글 목록을 추출하려고 합니다.

xe_comments 의 regdate 와 last_update 가 동일하지 않은 경우, 수정 댓글로 보고 아래와 같이 입력했습니다.

 

SELECT * FROM xe_comments WHERE regdate not in (select last_update from xe_comments)

 

그런데, 칼럼 A와 B의 위치를 아래와 같이 바꿨을 때 값이 다르게 나옵니다.

WHERE last_update not in (select regdate from xe_comments)

→ 193810

WHERE regdate not in (select last_update from xe_comments)

→ 193474

 

위 소스는 일부 칼럼이 누락되는 것 같은데.. 좀 더 정확하게 추출할 방법 없을까요?

  • profile

    사용하신 쿼리는 각 댓글의 작성 시간과 수정 시간을 비교하는 것이 아닙니다. 모든 댓글의 작성 시간 or 수정 시간을 정리해서 유니크한 값을 추출해내는 쿼리입니다. 리젠율이 꽤 높은 사이트가 아니라면 여러 댓글의 작성 시간과 수정 시간이 서로 일치할 가능성은 낮으니, 사실상 거의 모든 댓글을 추출하는 셈이지요.

     

    불필요한 서브쿼리를 빼세요. != 연산자 하나면 충분합니다. 아마 결과 수가 확 줄어들 거예요.

     

    SELECT * FROM xe_comments WHERE regdate != last_update;