`
冷静
  • 浏览: 146984 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

mysql 使用位运算

    博客分类:
  • DB
 
阅读更多

与运算 a & b  , 
或运算 a | b ,  
异或运算 a ^ b , 

或者 
你也可以将 与运算理解为 + 法  
例如 
1|2 = 3   (1+2 = 3) 
1|2|4 = 7 (1+2+4 = 7) 

将 异或运算理解为 - 法 
例如 
3^2 = 1 (3-2 = 1) 
3^1 = 2  (3-1 = 2) 

最后将 与运算 作为判断 
例如 
3&2 = 1    (3 = 1 + 2, 由 1和2组成 ,所以判断3&2 = 1 )  
3&4 = 0   ( 3 没有由 4组成,所以判断3&4 = 0) 

那么位运算有何用处呢, 例如 UNIX系统中的权限, 通常我们所知  权限分为  r 读, w 写, x 执行,其中 它们的权值分别为4,2,1, 所以 如果用户要想拥有这三个权限 就必须  chomd 7  , 即 7=4+2+1 表明 这个用户具有rwx权限,如果只想这个用户具有r,x权限 那么就 chomd 5即可 

说道此处就要涉及到数据库了。 

通常 我们的数据表中 可能会包含各种状态属性, 例如 blog表中 , 我们需要有字段表示其是否公开,是否有设置密码,是否被管理员封锁,是否被置顶等等。 也会遇到在后期运维中,策划要求增加新的功能而造成你需要增加新的字段。 

这样会造成后期的维护困难,数据库增大,索引增大的情况。 这时使用位运算就可以巧妙的解决。 

例如 

-- 公开blog  给status进行或运算 
UPDATE blog SET status = status | 1; 
-- 加密blog 给status进行或运算 
UPDATE blog SET status = status | 2; 
-- 封锁blog 
UPDATE blog SET status = status | 4; 
-- 解锁blog 
UPDATE blog SET status = status ^ 4; 
--查询所有被置顶的blog 
SELECT * FROM blog WHERE status & 8; 

虽然节省了空间,但是由于没有办法对status字段使用索引,所以如何使用来优化查询才是最重点的。 

分享到:
评论

相关推荐

    按位与_按位或_按位异或_运算

    2. **不使用临时变量交换两个变量的值**:利用按位异或运算的性质,可以实现两个变量之间值的交换而无需第三个变量。具体步骤如下: - `a = a ^ b` - `b = a ^ b` - `a = a ^ b` #### 四、其他按位运算 除了...

    如何优化Mysql千万级快速分页

    这是因为 MySQL 使用了 id 主键索引来快速定位分页的位置。 解决方案二:使用 where 子句 我们也可以使用 where 子句来优化分页查询。例如: select id, title from collect where id > (select id from collect ...

    PHP+MySQL应用中使用XOR运算加密算法

    从各种替换法运算的特点看,异或运算最适合用于简易加解密运算,本文将介绍一个简单易用的加密/解密算法:使用异或(XOR)运算。本算法原理简单,旨在使读者对信息的加密/解密有一个更加直观的印象。

    mysql-8.0.33-winx64.zip(mysql安装包)

    5. **连接与管理**:使用MySQL命令行客户端(如"mysql.exe")或图形化工具(如MySQL Workbench)连接到服务器,进行数据库管理和操作。 在日常使用中,我们可能还需要关注以下几个方面: - **备份与恢复**:定期...

    Mysql 集合运算,伪列,开窗函数及示例代码

    MySql只支持Union(并集)集合运算;但是对于交集Intersect、差集Except,就没有实现了。...其实,可以使用另外的方式运算,当然是没有办法的办法。 伪列:实现类似Oracle,MySqlServer的Over() partition by 开窗函数

    MySQL-64位

    1. **内存利用率**:64位操作系统允许MySQL使用超过4GB的物理内存,这有助于提高查询性能,尤其是在进行大规模数据处理时。 2. **处理能力**:64位MySQL能处理更大的数据文件和更多的并发连接,适合处理大量数据和...

    通过SQL Server的位运算功能巧妙解决多选查询方法

    在SQL Server中,位运算是一种...这种方法不仅适用于SQL Server,还可以在其他支持位运算的数据库系统中应用,如MySQL、Oracle等。在实际开发中,合理利用位运算可以优化数据库设计,提高查询性能,降低系统复杂度。

    计算机后端-PHP视频教程. php与mysql加强- 05. php加强51-位运算.wmv

    计算机后端-PHP视频教程. php与mysql加强- 05. php加强51-位运算.wmv

    MYSQL

    7.3.10 多列索引 7.3.11 使用来自其他数据库引擎的列类型 7.4 用在SELECT和WHERE子句的函数 7.4.1 分组函数 7.4.2 常用的算术运算 7.4.3 位函数 7.4.4 逻辑运算 7.4.5 比较运算符 ...

    mysql日期函数时间函数及加减运算

    "MySQL 日期函数和时间函数及加减运算" MySQL 日期函数和时间函数是 MySQL 中非常重要的函数,用于处理日期和时间数据类型。这些函数可以帮助开发者快速获得当前日期和时间、执行日期和时间相关的操作。 获得当前...

    Mysql函数手册.rar_MySQL函数手册_VZI_mysql 函数手册

    7. 位操作函数:如BIT_AND()、BIT_OR()和BIT_XOR()用于进行二进制位运算。 8. 信息函数:如DATABASE()返回当前数据库名,USER()获取当前用户名,VERSION()显示MySQL版本信息。 手册还可能包含关于聚合函数(如...

    MySQL 教程.pdf

    MySQL教程是针对数据库管理系统MySQL的一份详尽指南,基于MySQL 8.0参考手册编纂而成,适合初学者和有经验的开发者使用。本教程涵盖了从基础操作到复杂查询的多个方面,旨在满足日常开发中的各种需求。 1. **连接与...

    MySQL中文参考手册.chm

    7.3.9 列索引 7.3.10 多列索引 7.3.11 使用来自其他数据库引擎的列类型 7.4 用在SELECT和WHERE子句的函数 7.4.1 分组函数 7.4.2 常用的算术运算 7.4.3 位函数 7.4.4 逻辑...

    mysql的使用心得

    ### MySQL使用心得与技巧 #### 一、MySQL内置函数运用 **1. IP地址与数字之间的转换** - **函数介绍** - `INET_ATON`: 将IP地址转换为整数。 - `INET_NTOA`: 将整数转换为IP地址。 - **应用场景** - 在...

    mysql5.5 64位

    - **内存管理**:64位系统能处理更大的内存地址空间,允许MySQL使用超过4GB的内存,对于处理大量数据的数据库系统来说至关重要。 - **计算能力**:64位处理器能进行更大范围的数学运算,提高处理速度,特别是对于...

    四则运算(Demo)

    例如,可以使用栈数据结构来模拟运算符的优先级,先处理括号内的运算,再处理乘法和除法(它们比加法和减法有更高的优先级),最后处理加法和减法。 在提供的"Arithmetic.sln"和"Arithmetic.suo"文件中,".sln"是...

    Mysql 乘法除法精度不一致问题(除法后四位小数)

    MySQL中的乘法与除法运算在处理浮点数精度时可能会表现出不一致性,尤其是在涉及到小数部分时。这种不一致性的根源在于MySQL处理除法和乘法的方式不同。 首先,让我们探讨除法的精度。在MySQL中,当执行除法运算(/...

    Java与MySQL中小数保存问题解析.pptx.pptx

    在Java和MySQL中,处理小数时需要注意一系列与精度、数据类型选择以及运算准确性相关的问题。首先,让我们深入了解Java中小数的保存方式。 Java提供了两种基本的小数数据类型:float和double。float占用4个字节,...

    MYSQL_UDF-5.0.rar_mysql udf_udf_udf mysql

    了解和使用这些资源可以帮助数据库管理员或开发者增强MySQL的功能,解决特定业务场景下的问题。例如,可以创建一个UDF来处理特殊的数据类型,执行复杂的计算,或者实现特定的加密解密算法。不过,使用UDF时也需注意...

    MySQL数据库考试试题及答案-34页

    MySQL数据库考试试题及答案 在本文中,我们将对 MySQL 数据库考试试题及答案进行...在 MySQL 中,SELECT 语句中不能使用运算符号。 25.其他问题 在 MySQL 中,还有很多其他的知识点,例如索引、视图、存储过程等。

Global site tag (gtag.js) - Google Analytics