当前位置:   article > 正文

SQLAlchemy_sqlalchemy.query with_entities

sqlalchemy.query with_entities

sqlalchemy中可以使用query对象的with_entities()方法改变query内容。

例如:
我们经常需要查询数据,同时返回数据条数,通常会写成:
query = session.query(XXX, XXX, XXX).filter(XXX, XXX, XXX)
data = query.all()
count = query.count()

query = session.query(XXX, XXX, XXX).filter(XXX, XXX, XXX)
count_query = session.query(func.count(XXX)).filter(XXX, XXX, XXX)
data = query.all()
count = count_query.scalar()
第一种方式性能较差,第二种方式写起来麻烦。

这种情况可以使用with_entities()来改变query内容而不需要重写查询条件:
query = self.session.query(models.Order.num, models.Order.phone).filter_by(SH2_id=1108, status=4)
print(query.all())
count = query.with_entities(func.count(models.Order.id)).scalar()
print(count)

可见,with_entities()方法可以直接改变之前的query内容,而不影响其余筛选条件。各位可以视情况选用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/510784
推荐阅读
相关标签
  

闽ICP备14008679号