복붙노트

[SQL] MySQL의에 제한을 사용하여 여러 행을 업데이트?

SQL

MySQL의에 제한을 사용하여 여러 행을 업데이트?

    UPDATE messages set test_read =1 
        WHERE userid='xyz' 
        ORDER BY date_added DESC  
        LIMIT 5, 5 ;

나는 한계를 사용하여 5 행 세트를 업데이트하려면이 쿼리를 사용하려고하지만, MySQL은 아래 error..The을 보여주는 노력하고 있습니다

    UPDATE messages set test_read =1 
        WHERE userid='xyz' 
        ORDER BY date_added DESC  
        LIMIT 5 ;

왜 첫 번째가 작동하지 않습니다?

해결법

  1. ==============================

    1.당신이 정말이 방법을 수행해야하는 경우는 다음과 같이 사용할 수 있습니다 :

    당신이 정말이 방법을 수행해야하는 경우는 다음과 같이 사용할 수 있습니다 :

     UPDATE messages SET test_read=1
     WHERE id IN (
         SELECT id FROM (
             SELECT id FROM messages 
             ORDER BY date_added DESC  
             LIMIT 5, 5
         ) tmp
     );
    
  2. ==============================

    2.http://bugs.mysql.com/bug.php?id=42415

    http://bugs.mysql.com/bug.php?id=42415

  3. from https://stackoverflow.com/questions/1513206/update-multiple-rows-using-limit-in-mysql by cc-by-sa and MIT license