Javascript 仅使用Knex增加postgres DB中的最低条目
我试图获取一个特定用户具有最低计数列的行,然后仅递增该列,并返回它。这是我在下面写的,我认为它会起作用,但它会增加该用户选项的每个计数列。再说一次,我只想要最低计数的列Javascript 仅使用Knex增加postgres DB中的最低条目,javascript,database,postgresql,knex.js,Javascript,Database,Postgresql,Knex.js,我试图获取一个特定用户具有最低计数列的行,然后仅递增该列,并返回它。这是我在下面写的,我认为它会起作用,但它会增加该用户选项的每个计数列。再说一次,我只想要最低计数的列 knex('options').where('user_id', user_id) .orderBy('tally', 'asc') .limit(1) .first()
knex('options').where('user_id', user_id)
.orderBy('tally', 'asc')
.limit(1)
.first()
.increment('tally', 1)
.then((option) => {
console.log(option);
res.sendStatus(200)
})
可以使用子查询执行此操作:
knex('options')
.increment('tally', 1)
.whereIn('id', subQuery => {
subQuery('options')
.select('id')
.where('user_id', user_id)
.orderBy('tally', 'asc')
.limit(1);
})
.then(option => {
console.log(option);
res.sendStatus(200);
});
您可以使用
.toSQL()
检查生成器生成的SQL类型。例如,您的查询呈现为:update“options”set“tally”=“tally”+1其中“user\u id”=?
非常感谢!这就是我要找的。