SQLAlchemyのoffsetとは? 大学生エンジニア開発備忘録

python book開発備忘録
Photo by Christina Morillo on Pexels.com
 session.query(cls).limit(limit).offset(offset).all()

pythonでのコーディング中、以下のようなコードに遭遇した。

offset?ってなに?

SQLAlchemyのメソッドっぽいので、「SQLAlchemy offset」と検索してみるが、あまり詳しい情報が出てこない(とりあえずoffset(1)とかにしとけばいいとか)

次にsqlで調べたらヒット。どうやらsqlにもoffsetというものがあるらしい。

SELECT 列名 FROM 表名 LIMIT 数字 OFFSET 数字

こんな感じでlimitと合わせて使うことが多く、どの行から取得を始めるか指定ですることができる。

例えば、100件のデータがあるとき、offset(50)と指定したら、51件目からデータを取得できる。

 session.query(cls).limit(limit).offset(offset).all()

だからこのコードの意味は、offsetで指定した数以降のレコードから、limitで指定した数の件数だけ取得してくるという意味らしい。

SQLで指定できるオプションについてももっと勉強しなければ・・・

コメント

タイトルとURLをコピーしました