我有一个mysql表,其中用户权限存储为位掩码:
|user | permissions |
| Admin | 31 |
| User | 13 |
16 8 4 2 1
Admin -> 1 1 1 1 1 -> 16 + 8 + 4 + 2 + 1 -> 31
User -> 0 1 1 0 1 -> 8 + 4 + 1 -> 13
Run Code Online (Sandbox Code Playgroud)
现在我想为每个使用sql查询的用户添加权限.假设我想为每个人添加权限16而不修改另一个位.
UPDATE users SET permission = ????
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
Ian*_*and 38
要添加权限16,您只需说
UPDATE users SET permission = permission | 16;
Run Code Online (Sandbox Code Playgroud)
按位OR运算符将打开位.要关闭它们,请使用AND操作和要关闭的位的补码:
UPDATE users SET permission = permission & ~16
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11438 次 |
最近记录: |