MySQL で LIMIT句を利用して指定した件数のみ処理する
MySQL で、指定した件数のみ何らかの処理を行いたいときは、LIMIT句を利用します。
SELECT文の場合
ORDER BY句の次に LIMIT句を書いて、件数指定します。
ORDER BY句は使用しなくても構いませんが、使用しないと当然意図した順番通りに抽出することができません。
最初の50件のみを SELECT文で抽出したい場合は、
select * from table_name order by user_id limit 50;
と書けば、user_id の昇順で、50件のみ抽出されます。
また、50件目以降のデータを100件抽出したい、というような場合は、
select * from table_name order by user_id limit 50, 100;
と書くことで、実現できます。
UPDATE文・DELETE文の場合
SELECT文と同様に、ORDER BY句の次に LIMIT句を書いて、件数指定します。
こちらも同様に、ORDER BY句は使用しなくてもいいですが、意図した順番通りの処理ができないので結果は SELECT文以上に致命的ですw
update table_name set user_flag = 1 order by user_entry_date limit 50; delete from table_name order by user_entry_date limit 50;
上記のように書くと、例えば user_entry_date が古いデータから順に50件に、user_flag を立てる、データを消す、というような処理を行なえます。
なお、UPDATE文や DELETE文では、残念ながら、SELECT文のように「limit 50,100」というような指定はできないようです。
- 関連するブログ記事
-
- 現在位置
- TOP > Web制作技術 > MySQL > MySQL で LIMIT句を利用して指定した件数のみ処理する
- 前のブログ記事
- 2010年10月の読了本まとめ [2010年11月13日 12:51]
- 次のブログ記事
- 2010年11月の読了本まとめ [2010年12月 4日 19:36]








コメント(0)
コメントする