ホームページ >データベース >mysql チュートリアル >LIMIT を使用して MySQL の特定の数の行を正しく更新するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。