ホームページ >データベース >mysql チュートリアル >MySQL の LIMIT 句を使用して特定の数または範囲の行を更新するにはどうすればよいですか?
MySQL: 複数行更新の制限句
MySQL では、通常、LIMIT 句は、選択される行の数を制限するために使用されます。テーブル。ただし、更新する最大行数を指定するために使用することもできます。ただし、エラーを防ぐために特定の制約を考慮する必要があります。
指定されたクエリ:
UPDATE messages set test_read =1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5, 5 ;
は、LIMIT の 2 番目のパラメーターが制限ではなくオフセットを指定しているため、失敗します。したがって、クエリは MySQL に 10 行目以降の行を更新するように要求します (最初の 5 行をスキップし、5 のオフセットを適用します)。
この問題を解決するには、次のクエリを使用します。
UPDATE messages set test_read =1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5 ;
このクエリは最初の 5 行を正しく更新します。
次のような特定の範囲の行を更新したい場合は、 6 番目から 10 番目までは、サブクエリを使用できます。
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 );
このクエリは、サブクエリを使用して、指定された範囲内の行の ID を選択します。次に、メインクエリはそれらの行をそれに応じて更新します。
以上がMySQL の LIMIT 句を使用して特定の数または範囲の行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。