Sequelize:按列更新它的旧值

我正在尝试更新一组数据使用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 

所以我的问题是如何更新数据的旧值

问候

你应该可以通过以下方式来做到这一点:

 Users.update({ flag: sequelize.literal('flag & ~ 2') } , { where : { id :{ gt : 2 } } }); 

最简单的解决scheme是使用原始查询 :

 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. })