Mysql位运算简化一对多关系的示例分析
发表于:2024-10-20 作者:千家信息网编辑
千家信息网最后更新 2024年10月20日,这篇文章主要介绍Mysql位运算简化一对多关系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!语法& : 按位与,二进制位同时都为1的位设为1。| : 按位或,二进制位
千家信息网最后更新 2024年10月20日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安全错误
数据库的锁怎样保障安全
空间数据库原理与技术ppt
吉林省第三届网络安全获得
济南电商软件开发
服务器如何与app建立联系
主题数据库管理规范
软件开发质量bug数标准
服务器股票涨
数据库索引写法
闵行区推广网络技术
2020网络安全数据
轻量应用服务器的代码
米孚软件开发有限公司
神通数据库安装使用
工程索引数据库官网
公司有必要安装数据库吗
软件开发能做出区块链是什么
以及保障网络安全的_的能力
未来ip网络技术
数据库如何去掉字段里的表达式
河北阿米久网络技术有限公司
orc数据库连接池查询
孟津互联网科技
厦门学网络技术有限公司
中学网络安全图片
吃米网络技术有限公司
编程与网络技术哪个好
停止和开始数据库
营销数据库做法
万方数据库申请论文删除
人力资源软件开发运维营销