mysql 의 delete 를 limit 걸어서 하는것 가능 한가요?

mysql 의 delete 를 limit 걸어서 하는것 가능 한가요?

QA

mysql 의 delete 를 limit 걸어서 하는것 가능 한가요?

답변 2

본문

인기검색어 지울려고 하는데요

오래된것 하나는 남기고 최근것 지울려고 하는데요

가능 할까요?

 

몇개인지 카운트를 하면서 날짜 기준으로 오래된것 하나는 남기고 최근것 지우는것을 

쬐금 난이도가 있을것 같네요.

 

감사 드립니다

이 질문에 댓글 쓰기 :

답변 2

DELETE 

FROM  테이블명

    ORDER BY 필드명 DESC

    LIMIT 1

 

이렇게 하면 될 것 같네요..

delete a from 테이블명 a, 테이블명 b where a.시간컬럼명 > b.시간컬럼명 and a.키워드컬럼명 = b.키워드컬럼명

 

이렇게 하면 될까요? 수백만건 이상 되면 엄청 느릴수도 있는 쿼리네요.

테스트는 안 해봤습니다.... 삭제 구문 테스트할때는 꼭 다른 테이블로 복사해서 테스트해보세요...

저 쿼리가 말씀하신 의도로 작성된건데... 같은 테이블을 2회 불러들여서 키워드가 같은 경우를 비교해 시간이 더 큰 경우를 삭제하면 가장 오래된 것 하나만 남으니까요.
사실 저도 초짜라서 잘 모릅니다 ㅎㅎ

처음에는 몰랐는데 자세히보니 중복된것 깔끔하게 정리 해줄것 같기도 합니다.
왜 부하를 걱정 하셨는지도 쬐금 짐작이 갑니다.

잘 메모 해놨다가 나중에 써먹겠습니다.
이번에는 좀 원시적으로 자체적으로 해결 하였습니다.
감사 드려요~

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로