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で指定できるオプションについてももっと勉強しなければ・・・
コメント