LIMIT를 사용하여 MySQL DELETE 문의 구문 수정
DELETE 문을 사용하여 MySQL 테이블에서 행 범위를 삭제하려고 할 때 LIMIT 절을 사용하는 경우 구문이 올바르지 않으면 오류가 발생할 수 있습니다. 이 오류는 일반적으로 제한을 지정하는 데 사용된 구문에 문제가 있음을 나타냅니다.
제공된 쿼리의 문제는 DELETE 문의 LIMIT 절에 오프셋을 지정할 수 없다는 것입니다. DELETE 문에서 LIMIT 절을 사용하는 구문은 오프셋이나 시작점을 지정하지 않고 LIMIT
이 문제를 해결하려면 삭제할 행을 지정하도록 쿼리를 다시 작성해야 합니다. 더 정확하게는. 이를 수행하는 한 가지 방법은 IN 절을 사용하여 삭제하려는 행의 ID를 선택한 다음 해당 ID를 사용하여 DELETE 문에서 행을 필터링하는 것입니다.
다음은 다시 작성할 수 있는 방법의 예입니다. 귀하의 쿼리:
DELETE FROM `chat_messages`
WHERE `id` IN (
SELECT `id` FROM (
SELECT `id` FROM `chat_messages`
ORDER BY `timestamp` DESC
LIMIT 20, 50
) AS `x`
)
이 쿼리에서는 먼저 하위 쿼리를 사용하여 삭제하려는 행의 ID를 선택합니다. 그런 다음 기본 DELETE 문에서 IN 절을 사용하여 해당 ID를 기준으로 행을 필터링하여 원하는 행 범위를 삭제합니다.
다음을 조정해야 할 수도 있다는 점에 유의하는 것이 중요합니다. 테이블의 특정 구조와 원하는 동작을 기반으로 한 쿼리입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3