Mysql位运算简化一对多关系的示例分析
发表于:2025-02-09 作者:千家信息网编辑
千家信息网最后更新 2025年02月09日,这篇文章主要介绍Mysql位运算简化一对多关系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!语法& : 按位与,二进制位同时都为1的位设为1。| : 按位或,二进制位
千家信息网最后更新 2025年02月09日Mysql位运算简化一对多关系的示例分析
这篇文章主要介绍Mysql位运算简化一对多关系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
语法
& :
按位与,二进制位同时都为1的位设为1。| :
按位或,二进制位有一个位为1就为1.^ :
按位异或,对应位的二进制数不同时,对应位的结果才为1;如果两个对应位数都为0或者都为1,则对应位的结果为0。
原理
$a = 6 转化为2进制为 110$b = 3 转化为2进制为 11$a & $b即是 110 与 11将$a和$b中都为1的位设为1,位数不够的补0.即110 与 011运算结果010,转化为十进制结果为2
应用场景
每个景点包含很多属性,例如适合旅游的月份,我们一般的做法可能有两种:
是增加一个
varchar
字段,每个月份之间用一个特殊符号分隔保存,例如:"1,2,22,65,7"
建立一个关系表,在这里不能使用1-12的数字来表示月份,而是使用
1,2,4,8,16,32,64,128,512,1024,2048,4096
来表示,如果是多个月份,可以相互组合相加,之后存储为一个值。
比如 1,10,12月份,就可以存储1+512+4096=4609
,4096 这个值。
这个技巧适用于属性较少的一对多的场景,可以存储1个或者多个,太多的话还是推荐试用关系表。常用的属性有:月份,消息提醒类型,各种有限的类型组合等等。
使用技巧:
-- 添加一个分类 用 "|"SELECT (4|2|1); --- = 7-- 去掉一个分类,用"^"SELECT 7 ^ 1;-- 当我们需要查询某个月份的景点时,例如查询3月份的景点,可使用以下语句:SELECT * FROM `spots` WHERE `month` & 4 = 4;-- 当设置某个景点适合某个月份时,例如设置4325的景点适合2月份,可使用下面的语句: UPDATE `spots` SET `month` = `month` | 2 WHERE `id` = 4325-- 当取消设置某个景点的月份时,可使用下面的语句:UPDATE `spots` SET` month` = `month` ^ 2 WHERE`id`= 4325-- 查询同时适合多个月份的数据,例如需要查询设置了11,12,1月份的景点,将其三个月份对应的数值加起来,结果为6145,然后使用这个数值进行查询:SELECT * FROM `spots` WHERE `month` & 6145 = 6145-- 查询只要适合,1,11,12月份其中一个月份的景点就行SELECT * FROM `spots` WHERE (`month` & 4096 = 4096) or (`month` & 2048 = 2048) or (`month` & 1 = 1)
以上是"Mysql位运算简化一对多关系的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
月份
景点
查询
结果
运算
二进制
同时
多个
属性
语句
存储
示例
分析
位数
内容
场景
技巧
数值
篇文章
类型
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
嵌入式软件开发专业就业
苏州江苏服务器云主机
OKTOKEN系统软件开发
蓝凌软件开发待遇
网络安全与网络渗透的区别
猫的网络安全密钥是什么
服务器第三个灯亮起来怎么办
云服务器全网底价
管理服务器的软件下载
魔兽世界 霍格服务器
代驾软件开发
张湾区良好软件开发统计
星际战甲服务器插件
证书服务器配置与管理在哪里
微博开发数据库分析
中国网络安全领导小组小组长
服务器内存满了
数据库与概率论的答案
公共人力资源管理相关论文数据库
巴中租房软件开发
手机接入境外服务器
java软件开发读MBA
青岛软件开发驻场好不好
渝中区网络软件开发服务常见问题
学习360网络安全专业好吗
怎么用数据库登录php
单表和数据库的区别
苏州软件开发武汉
打电话总是显示无法连接服务器
杭州app软件开发外包贵吗