Code/Database (DB)
[SQL] 제한수 이상을 초과한 레코드 삭제 (한방 쿼리)
codens
2020. 7. 26. 16:19
sql delete record maximum count exceed ( 한방쿼리 )
예) users 테이블에서 100개 이상된 자료 지우기
DELETE FROM users WHERE id <=
( SELECT id FROM
( SELECT id FROM users ORDER BY id DESC LIMIT 100,1) AS s1
) ;
- 한번더 감싸야 한다. 감싸지 않고
DELETE FROM users WHERE id < ( SELECT id FROM users ORDER BY id DESC LIMIT 100,1) ;
- 하면 에러
에러 메시지 You can't specify target table 'users' for update in FROM clause
//----------------------------
// 참고 - NOT IN 은 에러 mysql 에서 LIMIT와 함께 사용이 안됨
DELETE FROM users WHERE
id NOT IN ( SELECT id FROM users ORDER BY id DESC LIMIT 100 ) ;
- mysql이 지원 안함 , 에러 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
반응형