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

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

아길이 9년 전 조회 4,103

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

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

가능 할까요?

 

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

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

 

감사 드립니다

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

답변 2개

채택된 답변
+20 포인트
9년 전

DELETE 

FROM  테이블명

    ORDER BY 필드명 DESC

    LIMIT 1

 

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

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

답변에 대한 댓글 1개

아길이
9년 전
한개만이 아니고 여러개 있을때 하나만 남기고 지우고 싶습니다.
답변글 대단히 감사 드립니다.

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

말러83
9년 전

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

 

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

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

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

답변에 대한 댓글 3개

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

조인문도 공부해야 될 필요성을 느끼는데
무튼 감사 드립니다..
말러83
9년 전
저 쿼리가 말씀하신 의도로 작성된건데... 같은 테이블을 2회 불러들여서 키워드가 같은 경우를 비교해 시간이 더 큰 경우를 삭제하면 가장 오래된 것 하나만 남으니까요.
사실 저도 초짜라서 잘 모릅니다 ㅎㅎ
아길이
9년 전
처음에는 몰랐는데 자세히보니 중복된것 깔끔하게 정리 해줄것 같기도 합니다.
왜 부하를 걱정 하셨는지도 쬐금 짐작이 갑니다.

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

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

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

로그인