大家好,我正在尝试在 sequelize 中创建键集分页
目前我一直在研究上一个和下一个按钮逻辑,以获取列表中的上一个和下一个帖子。
我一直在使用这两篇文章作为参考:
https://ask.use-the-index-luke.com/questions/205/how-to-query-for-previous-page-with-keyset-pagination pagination and filtering on a very large table in postgresql (keyset pagination?)
我有一个包含以下字段的工作模型:
Job.init({
title: DataTypes.STRING,
company: DataTypes.STRING,
description: DataTypes.TEXT,
excerpt: DataTypes.TEXT,
createdAt: DataTypes.DATE,
})
我写了一个查询,当点击 next button
时,
我从客户端传递日期,然后获取接下来的 3 个元素
const page = new Date(); // this is date that is passed as query param
data = await Job.findAll({
attributes: ['id', 'title', 'company', 'description', 'createdAt'],
where: {
'createdAt': {
[Op.gt]: page,
},
},
limit: 3,
order: [['createdAt', 'ASC']]
});
但是我知道 previous button
有问题,我正在尝试使用子查询执行以下查询:
const page = new Date();
SELECT id, title
FROM (
SELECT id, title
FROM jobs
WHERE createdAt < page
ORDER BY createdAt DESC
LIMIT 3
) AS t
ORDER BY createdAt ASC;
但我总是收到语法错误
感谢任何帮助:)