Noé*_*ieu 44 postgresql sqlalchemy flask flask-sqlalchemy
我正在使用Flask和SQLAlchemy.
假设我有一个用户模型,其中包含字段'popular'和'date_created'.我想做以下查询:
SELECT * FROM user ORDER BY popularity DESC, date_created DESC LIMIT 10
Run Code Online (Sandbox Code Playgroud)
如何在SQLAlchemy中执行多个order_by?对于单个,这适用:
User.query.order_by(User.popularity.desc()).limit(10).all()
Run Code Online (Sandbox Code Playgroud)
我应该添加另一个order_by吗?或者将流行度和date_created都放在我当前的order_by中?我希望人气在date_created上优先订购.
非常感谢你!
cod*_*eek 78
这应该工作
User.query.order_by(User.popularity.desc(),User.date_created.desc()).limit(10).all()
Run Code Online (Sandbox Code Playgroud)
小智 8
你也可以sqlalchemy.sql.text像这样使用:
from sqlalchemy.sql import text
User.query.order_by(text("popularity desc, date_created desc")).limit(10).all()
Run Code Online (Sandbox Code Playgroud)
你还可以做什么:
from sqlalchemy import and_, or_
User.query.order_by(and_(User.popularity.desc(), User.date_created.desc())).all()
Run Code Online (Sandbox Code Playgroud)
注意:and_和or_来自 sqlalchemy 库,而不是来自flask_sqlalchemy 库。sqlalchemy 是flask_sqlalchemy 的依赖项,所以你应该很好。
LTS:您可以将 sqlalchemy lib 与flask_alchemy lib 混合使用
| 归档时间: |
|
| 查看次数: |
27439 次 |
| 最近记录: |