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

sql 질문 드립니다. 좀 알려주세요.

· 14년 전 · 836 · 1
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 )

이게되는건지 ㅡㅡ;; ㅋㅋㅋ 그냥 비몽 사몽 밤새서 ㅠㅠ 더이상 디버깅 하기 너무 힘들어
좀 자고 일나서 하려는데 아 눈 감겨 그냥 물어 봐요 ㅋ

댓글 작성

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

로그인하기

댓글 1개

delete from sms where id='a' and send='b' and date != (select count(30) from sms order by date desc)
이렇게 하면 되지 않을까요?
테스트 해보지는 않았습니다.

게시글 목록

번호 제목
284508
284499
284492
284490
284484
284481
284478
284476
284474
284472
284470
284458
284457
284454
284453
284447
284446
284444
284441
284440