【问题标题】:Sequelize – order by values presenceSequelize – 按值排序
【发布时间】:2020-06-02 21:42:07
【问题描述】:

我有一个模型,其中包含 price_fromprice_tocreated_at 等字段。

现在我像这样查询它:

Model.findAll({ order: [['created_at', 'DESC']] });

我想添加另一个订单查询,所以最后会返回不包含price_fromprice_to 的记录,但不会按这些价格排序。

有没有办法在Sequelize中实现?

【问题讨论】:

    标签: postgresql sequelize.js


    【解决方案1】:

    您可以使用sequelize.literal 执行 CASE WHEN 语句,如下所示:

    Model.findAll({ order: [
        ['created_at', 'DESC'],
        [sequelize.literal('CASE WHEN price_from IS NULL AND price_to IS NULL THEN 1 ELSE 0 END'), 'DESC']
    ] });
    

    可能您的字段为 0 或为空,因此您可以调整 CASE 比较。

    【讨论】:

      猜你喜欢
      • 2013-10-27
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 2018-08-07
      相关资源
      最近更新 更多