MySQLはUPDATEにORDER BYやLIMITが使える


MySQL5.1しか確認して無いですが、
UPDATE文にもLIMIT句があるんすね


これは知らなかった。
データを直接いじっているときなどにとりあえずLIMIT 1なんてつけておくと、うっかり全件更新してしまうのを防げていいかも。
だがしかしWHERE句を付け忘れる時にはLIMITも付け忘れる罠。


そして、マニュアルを読んでみたらLIMITのほかにもORDER BYが使えるとのこと。

UPDATE users SET lucky_flg = 1 ORDER BY RAND() LIMIT 100

抽選で100名様にフラグがついた!

13:50 追記

[ThinkIT] 第2回:拡張部分によって違いがでてくるSQL文 (3/3)


UPDATEの他にDELETEでも出来る模様。
上記サイトの例のように、一番小さいのや小さい順に3件削除といった処理が簡単にできるのはちょっといいかも。