하위 쿼리에서 LIMIT를 사용하여 최근 15개 레코드를 기반으로 MySQL에서 행을 삭제하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-15 11:48:02
원래의
475명이 탐색했습니다.

How to Delete Rows in MySQL Based on the Latest 15 Records Using LIMIT in a Subquery?

LIMIT 제한이 있는 mySQL 하위 쿼리

MySQL에서 IN 연산자를 사용하는 하위 쿼리 내에서 LIMIT 절을 사용하려고 하면 오류가 발생할 수 있습니다. MySQL이 이 기능을 지원하지 않는다는 메시지입니다. 이 문서에서는 테이블의 최신 15개 레코드와 관련된 특정 조건을 기반으로 테이블에서 행을 삭제할 수 있도록 하는 이 문제에 대한 솔루션을 제공합니다.

원하는 결과를 얻으려면 다음 쿼리를 활용할 수 있습니다. 구조:

DELETE 
FROM posts 
WHERE id not in (
      SELECT * FROM (
            SELECT id 
            FROM posts 
            ORDER BY timestamp desc 
            limit 0, 15
      ) 
      as t);
로그인 후 복사

외부 DELETE 문은 행 삭제를 위해 게시물 테이블을 대상으로 합니다. IN 연산자는 하위 쿼리 결과에서 발견된 행인 유지해야 하는 행을 식별하는 데 사용됩니다.

하위 쿼리는 게시물 테이블에서 id 필드를 선택하고 결과를 타임스탬프별로 내림차순으로 정렬합니다. LIMIT 절을 적용하여 상위 15개 레코드를 검색합니다. 별칭 t를 사용하면 하위 쿼리가 효율적인 처리를 위해 임시 테이블을 생성합니다.

이 해결 방법을 사용하면 MySQL 제한 사항을 효과적으로 제거하고 최신 15개 게시물에 속하지 않는 모든 게시물을 삭제하는 의도된 작업을 수행할 수 있습니다. 기록합니다.

위 내용은 하위 쿼리에서 LIMIT를 사용하여 최근 15개 레코드를 기반으로 MySQL에서 행을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿