我正在尝试使用此查询的Sequelize更新一组数据
Users.update({
flag: 'flag & ~ 2'
} , {
where : {
id :{
gt : 2
}
}
})
生成的查询是
UPDATE `users` SET `flag`='flag & ~ 2' WHERE id > 2
但是应该是
UPDATE `users` SET `flag`=flag & ~ 2 WHERE id > 2
所以我的问题是如何通过它的旧值来更新数据
此致
答案 0 :(得分:9)
您应该可以通过以下方式执行此操作:
Users.update({
flag: sequelize.literal('flag & ~ 2')
} , {
where : {
id :{
gt : 2
}
}
});
答案 1 :(得分:0)
最简单的解决方案是使用raw queries:
sequelize.query("UPDATE users SET flag=flag & ~ 2 WHERE id > 2").spread(function(results, metadata) {
// Results will be an empty array and metadata will contain the number of affected rows.
})
答案 2 :(得分:0)
您可以使用连续字面量来做到这一点。
Subject<Resource>()
您也可以使用增量方法执行此操作,其中by表示要从哪个值增量。
ReplaySubject<Resource>(1)