关于mysql二进制权限设置学习总结

关于mysql二进制权限设置学习总结

在数据库中,在很多情况下,我们需要表示某种状态时,会创建某一个字段表示该条信息的某一种状态,大多使用1或0来表示肯定或否定,当这个表中存在多条这样使用1或0来表示的数据时,我们就可以将此类字段合并成为一个字段,使用数据库位运算来处理,即二进制表示法。

首先在数据库字段中存储数据为十进制数据,十进制数据转换成二进制后,每一个位数都表示一个权限的状态。
例如数据库中存储的15->二进制表示法为1111
每一个1都可以代表本条信息的某一种状态

当我们要修改状态1111为1110时,即将数据库中存储的15改为14
由于我们修改的时最后一位。权值为1,且需要由1->0过程转化。
但不能影响其他位的权限设置。
我们就可以将0001取反结果为1110
使用按位与:1111 & 1110 结果为 1110
可以使用下面的sql语句执行(在status | ~1中,1为需要更改的权限位的权值,status为数据库中的值)
注意:本sql语句为1->0的过程。

update blog set status | ~1 where id = 1;

若我们需要将某项权限修改为1,及0->1
如:1110->1111
同样最后一位权值为1
可以使用按位或:1110|0001 结果为 1111
可以使用下面的sql语句执行(在status & 1中,1为需要更改的权限位的权值,status为数据库中的值)
注意:本sql语句为0->1的过程。

update blog set status & 1 where id = 1;

当我们需要对状态进行查询的时候。
可以使用如下条件
此sql为xxx1状态的数据会匹配成功

select * from blog status & 1 = 1

查询xxx0状态的数据时使用

select * from blog status & 1 != 1

上列两条sql中的1对应为最后一位的权值,可根据需求修改对应权值

建议:将权值定义为类的私有属性,方便使用、对比

声明:本文为原创内容、记录个人学习过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于MySQL二进制安装,可以按照以下步骤进行操作: 1. 下载MySQL二进制文件,并将其移动到目标目录。根据引用,可以使用命令`mv mysql-5.7.30-linux-glibc2.12-x86_64 /home/mysql2/mysql`将MySQL二进制文件移动到`/home/mysql2/mysql`目录中。 2. 创建MySQL的数据目录。可以使用命令`mkdir /usr/local/mysql`创建MySQL的数据目录。根据引用,可以使用命令`mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql`将MySQL二进制文件移动到`/usr/local/mysql`目录中。 3. 设置MySQL数据目录的所有者和权限。根据引用,可以使用命令`chown -R mysql2.mysql2 /Lcdmp3_mysqldata/ /home/mysql2`将数据目录的所有者设置为`mysql2`,组设置为`mysql2`。 请注意,以上步骤仅为示例,具体的安装步骤可能因MySQL版本或操作系统的差异而有所不同。在进行MySQL二进制安装之前,请确保已阅读并遵循官方文档或安装指南以确保正确安装和配置MySQL。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [二进制方式安装mysql](https://blog.csdn.net/qq_26711103/article/details/128559643)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [MySQL二进制安装](https://blog.csdn.net/LFCuiYs/article/details/120830896)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值