반응형
추가 레코드를 추가하기 전에 20 개의 최신 레코드 만 포함하면되는 mysql 테이블이 있습니다. 새 행이 매일 추가되므로 먼저 허용 된 20 개보다 큰 레코드를 가장 먼저 삭제하고 싶습니다.
테이블에는 자동 증분 "id"열이 포함되어 있으므로 가장 오래된 레코드를 쉽게 확인할 수 있습니다.
도움을 주셔서 감사합니다.
해결 방법
쿼리에서 LIMIT
키워드로 오프셋을 지정하여 최신 20 개 행이 유지되도록 할 수 있습니다. 그러나 MySQL의 문서에 따르면 오프셋에서 마지막까지 쉽게 제한 할 수있는 방법은 없습니다. 대신 다음과 같이 제안합니다.
결과 집합의 끝까지 특정 오프셋에서 모든 행을 검색하려면 두 번째 매개 변수에 큰 수를 사용할 수 있습니다.
따라서이 SQL은 트릭을 수행해야합니다.
DELETE FROM table ORDER BY id DESC LIMIT 20, 18446744073709551615;
참조 페이지 https://stackoverflow.com/questions/2910137
반응형
'MySql' 카테고리의 다른 글
MySQL Codeigniter 검색 상자 또는 검색 양식 (0) | 2020.11.23 |
---|---|
MySQL 우정 데이터베이스 스키마 (0) | 2020.11.23 |
MySQL ERROR 1231 (42000) : 'character_set_client'변수를 'NULL'값으로 설정할 수 없습니다. (0) | 2020.11.23 |
MySQL에 의해 구동되는 Hibernate 기반 Java Servlet 애플리케이션에서 Hibernate Communications Link 실패 (0) | 2020.11.23 |
MySQL mySQL에서 두 테이블에서 선택하고 열을 병합 할 수 있습니까? (0) | 2020.11.22 |
댓글