最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

python - How do I pass a variable in to the order_by clause in sqlalchemy? - Stack Overflow

programmeradmin3浏览0评论

Let's say I have a basic table like so:

id: Mapped[int] = mapped_column(primary_key=True)

name: Mapped[str] = mapped_column(String(30))

How can I pass a variable in to my Select statement so I can decide what to order by at runtime?

That is, I can have a call like this:

db.session.scalars(select(OrgModel).order_by(OrgModel.id.desc()).all()

but I can't have

order_field = 'name'

db.session.scalars(select(OrgModel).order_by(order_field).all()

How do you accomplish this?

Let's say I have a basic table like so:

id: Mapped[int] = mapped_column(primary_key=True)

name: Mapped[str] = mapped_column(String(30))

How can I pass a variable in to my Select statement so I can decide what to order by at runtime?

That is, I can have a call like this:

db.session.scalars(select(OrgModel).order_by(OrgModel.id.desc()).all()

but I can't have

order_field = 'name'

db.session.scalars(select(OrgModel).order_by(order_field).all()

How do you accomplish this?

Share Improve this question asked Feb 16 at 2:55 froopydoopfroopydoop 1158 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

Found out that order_by can take a string, although the documentation for that is in a weird place not right by the other docs for order_by. If you import asc and desc from sqlalchemy, you can call

order_by(desc("id")) and it will work

发布评论

评论列表(0)

  1. 暂无评论