Node Sequelize with Mysql order by,需要空值放在最后

Jen*_*sen 3 mysql node.js sequelize.js

我正在为我的服务使用节点模块 Sequelize,它有一个 mysql 后端。我需要检索按升序关闭日期排序的记录(值存储为 unix 时间戳)。但是截止日期可以为空,我需要将截止日期为空的记录放在最后。

此查询在 mysql 中有效: select * from my_table order by -closed_date DESC;

但是,我似乎无法配置 Sequelize 来执行此操作。

查看 Sequelize 库,我发现支持 ORDER BY closed_date ASC NULLS LAST。但据我所知,mysql 不支持这种语法。只有mssql。

任何帮助将不胜感激。

Jen*_*sen 7

在mysql中,另一种进行上述查询的方式是这样的:

SELECT * FROM my_table ORDER BY ISNULL(closing_date), closing_date ASC
Run Code Online (Sandbox Code Playgroud)

这可以像这样在续集中完成:

records.findAll({
    order: [
        sequelize.fn('isnull', sequelize.col('closing_date')),
        ['closing_date', 'ASC']
    ]
}
Run Code Online (Sandbox Code Playgroud)