ホームページ >データベース >mysql チュートリアル >LIMIT を使用して MySQL の特定の数の行を更新するにはどうすればよいですか?
MySQL で LIMIT を使用して複数の行を更新する
MySQL クエリで LIMIT 句を使用して特定の数の行を更新しようとしています。しかし、エラーが発生します。最初のクエリが失敗した理由とその修正方法を理解しましょう。
UPDATE messages set test_read =1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5, 5 ;
LIMIT は結果セットの先頭からのオフセットを表す正の整数を想定しているため、上記のクエリは無効です。更新する行数。クエリでオフセット (5) と制限 (5) の両方を指定しましたが、これは正しくありません。
オフセットから開始して特定の行数を更新するには、サブクエリを使用して、更新する行を選択して更新します。修正されたクエリは次のとおりです。
UPDATE messages SET test_read=1 WHERE id IN ( SELECT id FROM ( SELECT id FROM messages ORDER BY date_added DESC LIMIT 5 ) tmp );
このクエリでは、サブクエリを使用して、date_added 列の降順で 5 行目から更新する行の ID を選択します。次に、メイン クエリは IN 句を使用して、これらの特定の行のみを更新します。
以上がLIMIT を使用して MySQL の特定の数の行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。