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

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

DDD
DDDオリジナル
2024-12-05 06:20:10202ブラウズ

How Can I Correctly Update a Specific Number of Rows in MySQL Using LIMIT?

MySQL - LIMIT を使用した UPDATE クエリ

この記事では、MySQL データベースで LIMIT 句を使用して特定の行を更新しようとするときに発生する課題について説明します。目的は、指定された範囲の行 ID 内の行を更新することです。

構文エラーと正しいクエリ

指定したクエリ「UPDATE oltp_db.users SET p_id =」 3 LIMIT 1001, 1000" は構文的に正しくありません。 UPDATE クエリで LIMIT を使用するための正しい構文は、開始行番号 (オフセット) と更新する行数を指定することです。正しいクエリは次のようになります。

UPDATE `oltp_db`.`users` SET p_id = 3 LIMIT 1001, 1000;

NULL 値を持つ行の更新

クエリ、「UPDATE oltp_db.users SET p_id = 3 WHERE p_id = null」、も間違っています。等価演算子「=」は NULL 値と一緒に使用できません。 NULL 値で行を更新するには、次のように IS NULL 演算子を使用します。

UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id IS NULL;

LIMIT を使用した複数の行の更新

更新される行の数を制限するには、次のように使用します。以下に示すように、行 ID の特定の範囲を選択するサブクエリquery:

UPDATE table_name SET name='test'
WHERE id IN (
    SELECT id FROM (
        SELECT id FROM table_name 
        ORDER BY id ASC  
        LIMIT 0, 10
    ) tmp
)

このクエリは、行 ID が指定された範囲内にある「name」列が「test」に設定された行を更新します。内側のサブクエリはテーブルから最初の 10 行 ID を選択し、それらは外側の更新クエリの IN 句で使用されます。

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

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