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