San*_*ram 7 python mysql sorting filtering sqlalchemy
我想对包含大量记录的表执行3次操作:(1)filter
(基于搜索查询)(2)order_by
(在asc/desc中的单个列上)和(3)slice
(对于给定offset
和limit
值).
在执行这些操作时,我需要中间结果(在过滤/排序后获得),以找出满足给定过滤器查询的记录数(将此信息发送到前端).
现在,我使用FILTER
和ORDER_BY
SQLAlchemy中来获得中间结果,然后在列表上应用切片.如何使用sqlalchemy实现相同的功能FILTER
,ORDER_BY
并将SLICE
过滤/排序后的记录数作为子结果一起使用?
我现在使用的sqlalchemy查询如下:
result = session.\
query(Customer).\
filter(Customer.name.like('%' + filter_query + '%') | Customer.email.like('%' + filter_query + '%') | Customer.partner.like('%' + filter_query + '%')).\
order_by(asc(getattr(Customer, sorting_column_name))).\
all()
Run Code Online (Sandbox Code Playgroud)
result = session.\
query(Customer).\
filter(Customer.name.like('%' + filter_query + '%') | Customer.email.like('%' + filter_query + '%') | Customer.partner.like('%' + filter_query + '%')).\
order_by(asc(getattr(Customer, sorting_column_name))).\
slice(offset,limit).\
all()
Run Code Online (Sandbox Code Playgroud)