mysql Sequelize:如何找到Max元素

hwamh0ep  于 2022-10-31  发布在  Mysql
关注(0)|答案(5)|浏览(128)

我在形成一个sequelize查询时发出:
我的原生查询很有用。

SELECT max(id),vehicleID FROM `vehicles` WHERE `vehicles`.`vsr_id`=342;

为此,我试图建立这样的代码。

Vehicle.find({ where: { 'vsr_id': 342 }, order : [sequelize.fn('max', sequelize.col('id'))] }).success(function(vehicles){
       console.log("Something i got" + vehicles)
        })

它抛出一个错误:sequelize对象[object Object]没有方法'col',并且我是从以下URL引用的:http://sequelizejs.com/docs/latest/models#block-34-line-8
我这边有任何代码缺失。请帮我解决
仅供参考:忽略分号

h79rfbju

h79rfbju1#

你能试试吗

Vehicle.max('id', {where : {'vsr_id': 342 }})
.then(function(vehicle_id){
   ...
})
.error(function(error){
   ...
});
ycggw6v2

ycggw6v22#

该查询应该可以使用:

Vehicle.findAll({
  attributes: [
     sequelize.fn('MAX', sequelize.col('id'))
  ],
  where: {
    { 'vsr_id': 342 }
  }
});
dtcbnfnu

dtcbnfnu3#

尝试用途:

Vehicle.findAll({
        attributes: [Sequelize.fn('max', Sequelize.col('id'))],
        raw: true,
    })

有关详细信息,请查看here

g6ll5ycj

g6ll5ycj4#

使用sequelize.col来引用列,sequelize不会添加"'",这导致了此处的问题。

uidvcgyl

uidvcgyl5#

Rate.findAll({
    where:{productId:pid},
    attributes:[[sequelize.fn('max', sequelize.col('rating')),'max']]
})

相关问题