집 >데이터 베이스 >MySQL 튜토리얼 >MySQL DELETE 문에서 LIMIT를 사용하여 행 범위를 삭제하는 방법은 무엇입니까?
LIMIT를 사용하여 MySQL DELETE 문의 구문 수정
DELETE 문을 사용하여 MySQL 테이블에서 행 범위를 삭제하려고 할 때 LIMIT 절을 사용하는 경우 구문이 올바르지 않으면 오류가 발생할 수 있습니다. 이 오류는 일반적으로 제한을 지정하는 데 사용된 구문에 문제가 있음을 나타냅니다.
제공된 쿼리의 문제는 DELETE 문의 LIMIT 절에 오프셋을 지정할 수 없다는 것입니다. DELETE 문에서 LIMIT 절을 사용하는 구문은 오프셋이나 시작점을 지정하지 않고 LIMIT
이 문제를 해결하려면 쿼리를 다시 작성하여 행을 지정해야 합니다. 더 정확하게 삭제했습니다. 이를 수행하는 한 가지 방법은 IN 절을 사용하여 삭제하려는 행의 ID를 선택한 다음 해당 ID를 사용하여 DELETE 문에서 행을 필터링하는 것입니다.
다음은 다시 작성할 수 있는 방법의 예입니다. 쿼리:
<code class="sql">DELETE FROM `chat_messages` WHERE `id` IN ( SELECT `id` FROM ( SELECT `id` FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50 ) AS `x` )</code>
이 쿼리에서는 먼저 하위 쿼리를 사용하여 삭제하려는 행의 ID를 선택합니다. 그런 다음 기본 DELETE 문의 IN 절을 사용하여 해당 ID를 기준으로 행을 필터링하여 원하는 행 범위를 삭제합니다.
다음을 조정해야 할 수도 있다는 점에 유의하는 것이 중요합니다. 테이블의 특정 구조와 원하는 동작을 기반으로 한 쿼리입니다.
위 내용은 MySQL DELETE 문에서 LIMIT를 사용하여 행 범위를 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!