- ベストアンサー
PostgreSQLで一定数ずつ行を取得したい
PostgreSQLにおいて、テーブルに記録されている行を、例えば10行ずつ取得したいのですが、どのようなSQL文にしたらよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
select * from hoge order by id limit 10 offset 45 これで、45行目から10行分返します。普通は select * from hoge order by id limit 10 offset 0 select * from hoge order by id limit 10 offset 10 select * from hoge order by id limit 10 offset 20 select * from hoge order by id limit 10 offset 30 と言う風にlimitずつoffsetをずらして取得する事でしょう。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
回答No.2
> これはテーブルにidという列がないと出来ないということでしょうか。 う~ん・・・・。私が言いたかったのはoffset句とlimit句であなたが聞きたかった事も多分それだと思うんだけど・・・・。 要するにあなたが書いたSQL(select文)の後ろにlimit句とoffset句をつけることで取得行数と取得開始行を指定する事ができますよという事です。なので、例えば10行ずつ取得するというのが、 limit 10 limit 10 offset 10 limit 10 offset 20 という風に書けば実現できますよっていう事、だよね? ひょっとしてそういう事を聞きたかったんではなかったのかな?
質問者
お礼
ご回答有難うございました。
質問者
補足
なるほど。特に連番用に列を用意しなくても出来るわけですね。
お礼
ご回答ありがとうございます。
補足
これはテーブルにidという列がないと出来ないということでしょうか。