본문 바로가기
MySql

MySQL mysql의 테이블에서 N 개의 오래된 레코드 삭제

by 베이스 공부 2020. 10. 21.
반응형

다음과 같은 LoginTime 테이블이 있습니다.

id | user_id | datetime
1  |   1     | 2011-01-19 18:51:01
2  |   1     | 2011-01-19 18:51:02  
3  |   1     | 2011-01-19 18:51:03  
4  |   1     | 2011-01-19 18:51:04  
5  |   1     | 2011-01-19 18:51:05  
6  |   1     | 2011-01-19 18:51:06  
7  |   1     | 2011-01-19 18:51:07  
8  |   1     | 2011-01-19 18:51:08  
9  |   1     | 2011-01-19 18:51:09  
10 |   2     | 2011-01-19 18:51:10  

5 개의 최신 레코드 ( 'datetime'열 기준) 만 유지하고 user_id = 1 인 모든 이전 레코드를 삭제하고 싶습니다.

하나의 mysql 쿼리로 이것을 달성 할 수 있습니까?

 

해결 방법

 

나는 이것이 효과가있을 것이라고 믿는다 ...

DELETE FROM LoginTime WHERE id IN (
     SELECT id
     WHERE user_id = 1
     ORDER BY datetime DESC
     LIMIT 0, 5
)

 

참조 페이지 https://stackoverflow.com/questions/4720996

 

 

반응형

댓글