首页 > 解决方案 > sqlalchemy 中的复合 WHERE 子句

问题描述

在 Markus Winand 的博客文章Pagination done the Postgresql way中,幻灯片 22 上显示了以下内容:

select * from <table> where topic = 1234 
and (date, id) < (prev_date, prev_id)
order by date desc, id desc
limit 10;

这在子句中使用了复合值(或“行值”),WHERE2013 年显然只有 Postgres 支持。通过正确的索引,这应该比OFFSET/LIMIT反模式更有效。

有没有办法WHERE在 sqlalchemy 过滤器中执行这种类型的子句?到目前为止,我的搜索只找到了有关复合键的信息。

标签: postgresqlsqlalchemy

解决方案


推荐阅读