我想对包含大量记录的表执行 3 个操作:(1)filter
(基于搜索查询)(2)order_by
(在asc/desc 中的单个列)和 (3)slice
(对于给定的 offset
和 limit
值)。
在执行这些操作时,我需要中间结果(在筛选/排序后获得),找出满足给定筛选查询的记录数(将此信息发送到前端)。
现在我正在使用 sqlalchemy 的 FILTER
和 ORDER_BY
来获取中间结果,然后在列表上应用切片。我如何使用 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()
最佳答案
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()
关于python - 如何在获得中间结果的同时在 sqlalchemy 的大表上应用 LIMIT/OFFSET [请阅读下面的详细信息]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24991800/