ど素人から毛を生やす。<延>

[MySQL]該当レコード群の最新1件のみをUPDATE

Web > Other 2021年11月2日(最終更新:1年前)

2021年11月2日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。毎度の備忘的記事。

WHERE指定した条件でUPDATEを行いたいけれど、更新対象はその条件の最新1レコードのみにしたい。
という場合、連番のIDや更新日時など、どのレコードが最新なのか判断基準になるカラムがあれば、簡単に可能という話。

UPDATE [対象テーブル] SET [更新内容] WHERE [条件] ORDER BY [基準となるカラム] DESC LIMIT 1

つまり、UPDATE には ORDER BY や LIMIT の指定が有効だという話です。

もちろん、応用すれば「最新10件のみ更新」とか「最古の1件を更新」とか、いくらでもできます。
サブクエリとかそういうややこしいもんは一切要らないのだ!

※なお、対象テーブルをJOINすると Incorrect usage of UPDATE and エラーとなってしまう模様。

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)