🔖

【MySQL8.0】DELETE文やUPDATE文で件数を指定したい

2023/06/18に公開

結論

MySQLで、DELETE文やUPDATE文でもlimitを活用することで件数を指定して削除/更新することができる。
紐づき数をカウントする画面表示を確認する際、テストデータの作成で活用した。

mysql> delete from employees limit 100; 
# employeesテーブルの先頭から100件だけデータが削除される

よくあるユースケースとしては、
テーブルの中で最も古いデータを削除/更新するときにORDER BY句と組み合わせて使用する時など。

mysql> delete from log order by created_at (asc) limit 1;
# logテーブルの中で最も古いデータが削除される

リファレンス

https://dev.mysql.com/doc/refman/8.0/ja/delete.html

LIMIT 句は、削除できる行数に制限を設定します。

DELETE ステートメントに ORDER BY 句が含まれている場合は、この句で指定されている順序で行が削除されます。 これは、主に LIMIT と組み合わせて使用した場合に有効です。

https://dev.mysql.com/doc/refman/8.0/ja/update.html

LIMIT 句は、更新できる行数に制限を設定します。

Discussion