>데이터 베이스 >MySQL 튜토리얼 >MySQL 5.5.8에서 최신 15개 이외의 게시물을 삭제하는 방법은 무엇입니까?

MySQL 5.5.8에서 최신 15개 이외의 게시물을 삭제하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-11 15:13:03586검색

How to Delete Posts Outside the Latest 15 in MySQL 5.5.8?

mySQL 하위 쿼리 제한: '이 버전의 MySQL은 'LIMIT & IN/ALL/ANY/SOME 하위 쿼리'를 지원하지 않습니다.' 오류 해결

제공된 쿼리는 최근 15개 항목에 포함되지 않은 게시물을 삭제하려고 시도하지만 "MySQL은 아직 지원하지 않습니다"라는 오류가 발생합니다. 'LIMIT & IN/ALL/ANY/SOME 하위 쿼리.'" 이는 MySQL 버전 5.5.8의 제한 때문입니다.

제안된 솔루션:

이를 극복하기 위해 제한 사항이 있으므로 다음 수정된 쿼리를 사용하십시오.

DELETE 
FROM posts 
WHERE id not in (
      SELECT * FROM (
            SELECT id 
            FROM posts 
            ORDER BY timestamp desc limit 0, 15
      ) 
      as t);

이 쿼리는 중첩된 SELECT 문을 사용하여 하위 쿼리를 생성합니다. 최근 15개 게시물의 ID를 검색합니다. 그런 다음 기본 쿼리는 이 하위 쿼리를 활용하여 이 범위를 벗어나는 게시물을 식별하고 삭제합니다.

설명:

내부적으로 수정된 쿼리는 2단계 프로세스를 따릅니다. :

  1. 하위 쿼리 별칭 't'로 표시되는 임시 테이블을 생성합니다. 여기에는
  2. 그런 다음 메인 쿼리는 이 임시 테이블을 사용하여 하위 쿼리에 ID가 없는 게시물을 필터링하여 원하는 삭제를 수행합니다.

위 내용은 MySQL 5.5.8에서 최신 15개 이외의 게시물을 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.