sql-server - Sequelize mssql : order by primary key and limit

标签 sql-server sequelize.js

我想使用主键运行结果排序查询,并限制返回结果的数量。例如:
return Things.findAll({ attributes: [ 'id', 'status', 'otherField' ], limit: 2, order: [['id', 'DESC']] })
构建查询时,它会生成以下 SQL 语句:
... ORDER BY [Source].[id] DESC, [id] OFFSET 0 ROWS FETCH NEXT 2 ROWS ONLY
因为 id 是主键并且排序参数也是 id 我收到以下错误:
'A column has been specified more than once in the order by list. Columns in the order by list must be unique.'
我正在使用 sequelize 3.30.4 和乏味的 2.0.0 连接到 Microsoft SQL Server 2017。

谢谢你。

最佳答案

顺序数组应包含数组/元组。试试这个:

return Things.findAll({
  attributes: [
    'id',
    'status',
    'otherField'
  ],
  limit: 2,
  order: [ 
    ['id', 'DESC']
  ]
})

关于sql-server - Sequelize mssql : order by primary key and limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45868651/

相关文章:

mysql - 产品过滤器 Node js + sequelize

sequelize.js - Sequelize 在 JS 中使用驼峰式大小写,但在表名中使用下划线

sql - 如何获取两个日期时间之间的小时和分钟差异

sql-server - 错误 0xc0202049 : Data Flow Task 1: Failure inserting into the read-only column

sql-server - 如何避免在 Dynamics CRM 2011 SQL 报表中嵌入连接字符串?

mysql - nodejs - passport.use 回调返回 dataValues 和 _previousDataValues 而不是普通对象

javascript - 伊诺特 : no such file or directory

sql - 在 SQL Server 中使用 OpenXML 从 XML 中提取数据

SQL Server - 任何更好的替代方法来提高具有大量插入的冗长事务的性能?

sequelize.js - 包含在带有 Sequelize 的中间表中