flask SQLAlchemy排序和查询

本文介绍了使用Flask SQLAlchemy进行排序和查询的方法,包括order_by进行正向和反向排序,limit和offset限制查询数据量,切片操作,group_by进行分组,having进行结果过滤,join操作实现内外连接,别名解决命名冲突,以及子查询的应用。详细讲解了每种操作的用法和示例。
摘要由CSDN通过智能技术生成

排序

1.order_by:可以指定根据这个表中的某个字段进行排序,如果在前面加了一个-,代表的是降序排序。
2.在模型定义的时候指定默认排序:有些时候,不想每次在查询的时候都指定排序的方式,可以在定义模型的时候就指定排序的方式。

  • 在模型定义中,添加以下代码
 __mapper_args__ = {
   
     "order_by": title
 }
  • 即可让文章使用标题来进行排序。

3.正向排序和反向排序:默认情况是从小到大,从前到后排序的,如果想要反向排序,可以调用排序的字段的desc方法。

limit、offset和切片

  • limit:可以限制每次查询的时候只查询几条数据。
  • offset:可以限制查找数据的时候过滤掉前面多少条。
  • 切片:可以对Query对象使用切片操作,来获取想要的数据。

查询

group_by

根据某个字段进行分组。比如想要根据性别进行分组,来统计每个分组分别有多少人

session.query(User.gender,func.count(User.id)).group_by(User.gender).all()

having

having是对查找结果进一步过滤。比如只想要看未成年人的数量,那么可以首先对年龄进行分组统计人数,然后再对分组进行having过滤。

result = session.query(User.age,func.count(User.id)<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值