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

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

Patricia Arquette
リリース: 2024-11-30 15:17:11
オリジナル
496 人が閲覧しました

How Can I Update a Specific Range of Rows in MySQL Using a LIMIT Clause?

MySQL: 制限を使用したレコード更新のクエリ

MySQL を使用する場合、特定のレコードを更新する必要があるシナリオに遭遇する可能性があります。テーブル内の行の範囲。この記事では、UPDATE クエリで LIMIT 句を使用できるかどうかという問題を取り上げ、これを実現する方法についてのガイダンスを提供します。

構文エラーと正しい使用法

最初のクエリでは、1001 レコードから始まる行と次の 1000 レコードを更新しようとしました。ただし、使用されている構文は正しくありません。 MySQL では、LIMIT 句は、更新される行ではなく、選択される行の数を制限するために使用されます。特定の範囲の行を更新する正しい方法は、サブクエリを使用することです。

たとえば、p_id を 3 に設定して最初の 1000 行を更新するには、次のコマンドを使用します。

UPDATE `oltp_db`.`users` SET p_id = 3
WHERE id IN (
    SELECT id FROM (
        SELECT id FROM `oltp_db`.`users` 
        ORDER BY id ASC  
        LIMIT 0, 1000
    ) tmp
)
ログイン後にコピー

NULL 値の処理

2 番目のクエリで、更新しようとしましたp_id が NULL に設定されている行。ただし、等価性チェックでは NULL 値を非 NULL 値と比較できないため、クエリは失敗します。 NULL の p_id 値を持つ行を更新するには、IS NULL 関数と COALESCE() 関数を使用できます。

UPDATE `oltp_db`.`users` SET p_id = COALESCE(3, p_id)
WHERE p_id IS NULL
ログイン後にコピー

これらのガイドラインに従うことで、NULL を扱う場合でも、MySQL テーブル内の特定の行を効果的に更新できます。値。

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

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