MySQL,一列中的多位操作

MySQL,一列中的多位操作,mysql,bit-manipulation,bit,Mysql,Bit Manipulation,Bit,我有一个名为设置的列(类型:tinyint unsigned not null) 包含以位(0/1)为单位的用户设置的 例如,当我想要更新设置_1时,我会: UPDATE `users` SET `settings`=`settings`|1 (将设置1设置为1(真)) 但是,我怎样才能多更新一列呢? 例如: UPDATE `users` SET `settings`=`settings`|1, `settings`=`settings`&~2, `settings`=`sett

我有一个名为
设置
的列(类型:tinyint unsigned not null)

包含以位(0/1)为单位的用户设置的

例如,当我想要更新设置_1时,我会:

UPDATE `users` SET `settings`=`settings`|1
(将设置1设置为1(真))

但是,我怎样才能多更新一列呢? 例如:

UPDATE `users`
SET
 `settings`=`settings`|1,
 `settings`=`settings`&~2,
 `settings`=`settings`|4
WHERE `user`='xyz';

任何解释它的链接?

您可以一起执行所有操作,例如:

update user 
set settings = settings|1&~2|4;

也可以使用括号来限制范围。以下是相同的示例。

您可以同时执行所有操作,例如:

update user 
set settings = settings|1&~2|4;
也可以使用括号来限制范围。这是同样的