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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-02 14:36:44638ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。