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 중국어 웹사이트의 기타 관련 기사를 참조하세요!