1. ホーム
  2. mysql

[解決済み] MySQL - LIMITを使用したUPDATEクエリ

2023-04-14 09:03:06

質問

テーブルの行を1001から次の1000まで更新したいのですが、どうすればよいですか?

以下のクエリで試してみました。

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

  1. これは私に構文エラーを与えています。これは正しいですか?私はここで何かミスをしていますか?
  2. このように更新を制限することは可能でしょうか?

また、私が更新しようとしている行は、データ型がINTEGERである列p_idにNULL値を持っています。このため、私は次のクエリを使用して更新することさえできません。

UPDATE `oltp_db`.`users` SET p_id = 3 WHERE p_id = null

  1. 上記のクエリは正しいですか?
  2. これを達成するために何ができるでしょうか?

どのように解決するのか?

nullを扱う場合。 = ではnull値にはマッチしません。そのため IS NULL または IS NOT NULL

UPDATE `smartmeter_usage`.`users_reporting` 
SET panel_id = 3 WHERE panel_id IS NULL

LIMITUPDATE と同じですが row count だけ