【问题标题】:Sequelize query. Where condition using calculated values续集查询。使用计算值的条件
【发布时间】:2021-10-08 02:42:35
【问题描述】:

这就是它在通常的 mySQL 请求中发生的方式。

SELECT * from table WHERE (sec - duration)

但是我在sequelize的文档中没有找到怎么做

谁能告诉我如何在 sequelize 查询中的 where 对象中执行此操作???请))

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

    sec - duration < 10 等价于sec < 10 + durationsec < SUM(10, duration)。我们可以只使用SUMsequelize.fn 的SQL 函数:

    Table.findAll({
      where: {
        sec:{
          [Op.lt]: sequelize.fn('sum', 10, sequelize.col('duration'))
        }
      }
    })
    

    【讨论】:

    • 这不起作用 - 我得到 sql 语法错误(((
    • 自己尝试一下,你会看到)))我已经关闭了服务器((但 sequelize 告诉我 - sql 语法错误......我找到了另一种文字方式,这正是我想要什么!
    • 但无论如何,非常感谢您提供的螨虫解决方案。
    【解决方案2】:

    我找到了更合适的解决方案!!!

    Table.findAll({
      where: {
        sec:{
          [Op.lt]: sequelize.literal(duration + 10)
        }
      }
    })

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-12
      • 1970-01-01
      • 2014-04-16
      • 2019-05-29
      • 2021-02-12
      • 1970-01-01
      • 2012-01-26
      相关资源
      最近更新 更多