반응형
제한이 있는 MySql 삭제 문
테이블에서 행을 삭제하려고 하는데 오류가 발생합니다.
DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;
50에 오류가 발생합니다.
SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 1행에서 '50'에 가까운 구문을 사용할 수 있는지 확인하십시오.
뭐가 문제인지 모르겠어요.
간격띄우기를 지정할 수 없습니다.DELETE
의LIMIT
절
따라서 이를 위한 유일한 방법은 쿼리를 다음과 같은 것으로 다시 쓰는 것입니다.
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
반응형
'itsource' 카테고리의 다른 글
기존 테이블에 부울 열 추가 (0) | 2023.10.24 |
---|---|
Angularjs 서비스 콜백을 통해 컨트롤러 범위 업데이트 (0) | 2023.10.24 |
Powershell - https 바인딩에 SSL 인증서 설정 (0) | 2023.10.24 |
이스이스이스요소 블록 레벨 또는 인라인 레벨?요소 블록 레벨 또는 인라인 레벨?요소 블록 레벨 또는 인라인 레벨? (0) | 2023.10.24 |
데이터베이스 테이블의 일부 기록을 확인하는 가장 빠른 방법은? (0) | 2023.10.24 |