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

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

QA

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

본문

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

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

가능 할까요?

 

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

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

 

감사 드립니다

이 질문에 댓글 쓰기 :

답변 2

DELETE 

FROM  테이블명

    ORDER BY 필드명 DESC

    LIMIT 1

 

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

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

 

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

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

제가 결정적인 쿼리목적을 빼먹었네요..
인기 검색어중 중복되는것 중 하나만 빼고 최근것 지우기 인데...

조인문도 공부해야 될 필요성을 느끼는데
무튼 감사 드립니다..

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

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 90
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT