【问题标题】:Sequelize: sort by enum casesSequelize:按枚举案例排序
【发布时间】:2015-10-02 13:49:29
【问题描述】:

我有一个模型 (Article),其字段 (名称为 type) 类型为 ENUM('source', 'translated'),我想返回 1 篇按类型字段排序的文章。源文章应在翻译文章之前返回。比如:

Article.findOne(order: [
    {
        type: [
            'source',
            'translated'
        ]
    }
]);

不幸的是,似乎没有用于按枚举排序的内置解决方案。相反,我可能必须对 by case 进行排序,但我找不到任何有关如何使用 Sequelize 执行此操作的文档。

这里的传统方法是什么?

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

    sequelize 中很难按 CASE 排序,但应该可以按字段排序(链接帖子中的第二个答案):

    order: sequelize.fn('field', sequelize.col('type'), 'source', 'translated')
    

    据我所知只有mysql支持

    【讨论】:

      【解决方案2】:

      要按 CASE 排序,您应该使用 sequelize.literal

      order: sequelize.literal(`case when type='source then '0' when type='tranlated' then '1' else type end`)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-21
        • 2020-06-07
        • 2018-12-14
        • 2017-08-08
        • 1970-01-01
        相关资源
        最近更新 更多