itsource

제한이 있는 MySql 삭제 문

mycopycode 2023. 10. 24. 21:19
반응형

제한이 있는 MySql 삭제 문

테이블에서 행을 삭제하려고 하는데 오류가 발생합니다.

DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;

50에 오류가 발생합니다.

SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 1행에서 '50'에 가까운 구문을 사용할 수 있는지 확인하십시오.

뭐가 문제인지 모르겠어요.

간격띄우기를 지정할 수 없습니다.DELETELIMIT

따라서 이를 위한 유일한 방법은 쿼리를 다음과 같은 것으로 다시 쓰는 것입니다.

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기둥.

업데이트: 현재 수정된 테이블에서 선택할 수 없으므로 mysql을 속이려면 이중 네스팅을 구현해야 합니다(Martin Smith 덕분에).

언급URL : https://stackoverflow.com/questions/7142097/mysql-delete-statement-with-limit

반응형