ホームページ > データベース > mysql チュートリアル > LIMIT を使用して MySQL の特定の範囲の行を正しく更新するにはどうすればよいですか?

LIMIT を使用して MySQL の特定の範囲の行を正しく更新するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-31 12:03:08
オリジナル
306 人が閲覧しました

How to Correctly Update a Specific Range of Rows in MySQL Using LIMIT?

MySQL: LIMIT を使用して複数の行を更新する

MySQL では、LIMIT 句を使用してクエリの影響を受ける行の数を制限できます。 。ただし、UPDATE ステートメントで LIMIT を使用する場合、特定の範囲の行を更新しようとすると一般的なエラーが発生します。

次のクエリを考えてみましょう:

UPDATE messages SET test_read=1 
WHERE userid='xyz' 
ORDER BY date_added DESC  
LIMIT 5, 5;
ログイン後にコピー

このクエリは 5 行を更新することを目的としています。 「messages」テーブルの 5 行目から始まる行で、「userid」が「xyz」と等しいもの。ただし、このクエリはエラーになります。

その理由を理解するには、このコンテキストの LIMIT 句がオフセットと最大行数を定義していることに注意することが重要です。この例では、表示される行数を更新するのではなく、取得して制限します。特定の範囲の行を更新するには、代わりにサブクエリを使用できます。

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
);
ログイン後にコピー

この変更されたクエリでは、サブクエリを使用して、更新する必要がある 5 つの行の ID を選択します。次に、メインの UPDATE ステートメントはこれらの ID を照合し、更新を実行します。これにより、必要な行のみが確実に変更されます。

以上がLIMIT を使用して MySQL の特定の範囲の行を正しく更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート