Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sequelize.js Sequelize:将where子句应用于子查询_Sequelize.js - Fatal编程技术网

Sequelize.js Sequelize:将where子句应用于子查询

Sequelize.js Sequelize:将where子句应用于子查询,sequelize.js,Sequelize.js,我试图在子查询中添加一个where子句,但是我得到了下面的错误。我想做的是不可能的吗 Error: Support for literal replacements in the `where` object has been removed. models.Message.findAll({ attributes: ['createdAt', 'content', [ sequelize.literal(` RANK() OVER

我试图在子查询中添加一个where子句,但是我得到了下面的错误。我想做的是不可能的吗

Error: Support for literal replacements in the `where` object has been removed.

models.Message.findAll({
    attributes:  ['createdAt', 'content',
      [
        sequelize.literal(`
            RANK() OVER (
              PARTITION BY DATE_FORMAT('createdAt', '%Y-%m-%d') 
              ORDER BY createdAt DESC
        )`),
        'ranked',
      ]],
      where: [sequelize.literal('ranked') <= 3]
  })
错误:已删除对`where`对象中的文字替换的支持。
models.Message.findAll({
属性:['createdAt','content',
[
sequelize.literal(`
秩()超过(
按日期分区\u格式('createdAt','%Y-%m-%d')
按createdAt DESC排序
)`),
“排名”,
]],

式中:[sequelize.literal('ranked')我想您应该使用
sequelize.where
sequelize.literal
与某些条件结合起来:

where: sequelize.where(sequelize.literal('ranked'), '<=',  3)
where:sequelize.where(sequelize.literal('ranked'),”使用以下代码:

where: sequelize.where(sequelize.col('ranked'), '<=',  3)

where:sequelize.where(sequelize.col('ranged')),'谢谢您的输入!这消除了
错误:在
where`对象中支持文字替换。`但是我现在得到了错误:
Unknown column'在'where子句'
中排名。
对不起,我没有看到
排名
不是真正的列。然后您可以尝试整个
RANK()…
sequelize中的表达式。where
而不是
排名
我假设这是您的建议?
where:sequelize.where(sequelize.literal(
RANK()OVER(按日期划分格式('createdAt','%Y-%m-%d'))按createdAt DESC订购)
),'不幸的是,它说我不能在此上下文中使用rank函数OK,你能在你的帖子中添加一个需要的SQL查询,这样我们就可以了解你试图实现的目标吗?'我尝试了这一点,但我得到了错误:
SequelizeDatabaseError:Unknown column'ranked'在'where子句'
中排名前使用带点的模型名称,例如
where:sequelize.where(sequelize.col('modelName.ranged'),'
where: sequelize.where(sequelize.col('ranked'), '<=',  3)