MySQL에서 데이터 조작을 위한 하위 쿼리 사용
현재 작업에는 특정 기준에 따라 테이블에서 레코드를 선택적으로 삭제하는 작업이 포함됩니다. 하위 쿼리를 활용하면 MySQL을 사용하여 이 작업을 수행할 수 있습니다.
시작하려면 다음 쿼리를 고려해 보겠습니다.
DELETE FROM posts WHERE id NOT IN (SELECT id FROM posts ORDER BY timestamp DESC LIMIT 0, 15)
이 쿼리는 최신 15개 레코드에 포함되지 않은 게시물을 삭제하는 것을 목표로 합니다. "타임스탬프" 필드에 따라 정렬됩니다. 그러나 8.0 이전 버전의 MySQL에서는 LIMIT 절을 IN 하위 쿼리와 결합하려고 하면 오류가 발생합니다.
이 제한을 극복하기 위해 중첩 하위 쿼리 해결 방법을 사용할 수 있습니다. 수정된 쿼리는 다음과 같습니다.
DELETE FROM posts WHERE id NOT IN ( SELECT * FROM ( SELECT id FROM posts ORDER BY timestamp DESC LIMIT 0, 15 ) AS t);
이 다시 작성된 쿼리에서는 최신 15개 게시물의 ID를 가져오는 내부 하위 쿼리를 생성합니다. 그런 다음 외부 하위 쿼리는 "AS t" 절을 사용하여 결과에 별칭을 지정합니다.
이 중첩 하위 쿼리 접근 방식을 사용하면 LIMIT 및 IN 조합을 완전히 지원하지 않는 이전 MySQL 버전에서도 원하는 결과를 효과적으로 얻을 수 있습니다. .
위 내용은 하위 쿼리를 사용하여 MySQL의 특정 기준에 따라 레코드를 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!