如何在sequelize API的where子句中使用行值

时间:2018-01-21 16:33:25

标签: node.js postgresql sequelize.js

我想使用sequelize实现这个sql查询。

select id, date, comment
from posts
where (date, id) > ('2018-01-01', 1)
order by date, id
limit 10

这种查询用于无限滚动分页。有关如何做到这一点的任何想法?文档没有说明行值

2 个答案:

答案 0 :(得分:1)

如果问题是where,您可以将其重写为:

where date > '2018-01-01' or (date = '2018-01-01' and id > 1)

答案 1 :(得分:1)

正如@GondonLinoff指出的那样,查询可以重写。 我使用<dependency> <groupId>javax.ejb</groupId> <artifactId>javax.ejb-api</artifactId> <version>LATEST</version> <scope>provided</scope> </dependency> 分析了postgres上两个查询的性能,但它没有任何影响(似乎行值只是语法糖,但是dba专家可以解释这个)。

因此,在sequelize中,where子句应该实现为:

explain analyze