sql 질문 드립니다. 좀 알려주세요.
sms 테이블에 다음 같이 필드가 있다고 가정하구요.
id | send | memo | date
id 값 a와 send 값 b를 모두 만족하는 데이터중
date 순으로 제일 최신꺼 30개만 남기고 모두 지우는 쿼리문이 어떻게 될까요.
한 문장으로 처리 했으면 하는데 도무지 머리가 안돌아 가네요.
알려 주시면 감사 하겠습니다.
delete from sms where id='a' and send='b' and date < (select min(send_datetime) as m_date from sms where id='a' and send='b' group by send limit 0, 30 )
이게되는건지 ㅡㅡ;; ㅋㅋㅋ 그냥 비몽 사몽 밤새서 ㅠㅠ 더이상 디버깅 하기 너무 힘들어
좀 자고 일나서 하려는데 아 눈 감겨 그냥 물어 봐요 ㅋ
id | send | memo | date
id 값 a와 send 값 b를 모두 만족하는 데이터중
date 순으로 제일 최신꺼 30개만 남기고 모두 지우는 쿼리문이 어떻게 될까요.
한 문장으로 처리 했으면 하는데 도무지 머리가 안돌아 가네요.
알려 주시면 감사 하겠습니다.
delete from sms where id='a' and send='b' and date < (select min(send_datetime) as m_date from sms where id='a' and send='b' group by send limit 0, 30 )
이게되는건지 ㅡㅡ;; ㅋㅋㅋ 그냥 비몽 사몽 밤새서 ㅠㅠ 더이상 디버깅 하기 너무 힘들어
좀 자고 일나서 하려는데 아 눈 감겨 그냥 물어 봐요 ㅋ
댓글 1개
14년 전
delete from sms where id='a' and send='b' and date != (select count(30) from sms order by date desc)
이렇게 하면 되지 않을까요?
테스트 해보지는 않았습니다.
이렇게 하면 되지 않을까요?
테스트 해보지는 않았습니다.
게시글 목록
| 번호 | 제목 |
|---|---|
| 284348 | |
| 284336 | |
| 284333 | |
| 284332 | |
| 284320 | |
| 284318 | |
| 284316 | |
| 284313 | |
| 284307 | |
| 284306 | |
| 284303 | |
| 284298 | |
| 284296 | |
| 284290 | |
| 284286 | |
| 284280 | |
| 284277 | |
| 284272 | |
| 284261 | |
| 284259 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기