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'



반응형
Posted by codens