• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 介绍Mysql位运算简化一对多关系

介绍Mysql位运算简化一对多关系

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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)



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 介绍Mysql位运算简化一对多关系

相关文章

  • 2022-04-29利用视频网站加快百度及谷歌的重新收录的SEO技
  • 2022-04-29ThinkPHP6 Workerman 基本使用
  • 2022-04-29wordpress错误提示”抱歉,由于安全原因,这个文件类型不受支持。”解决方法
  • 2022-04-29深入浅析vue3+vite中怎么使用svg图标
  • 2022-04-29Photoshop制作可爱风格的糖果艺术字
  • 2022-04-29php中如何获取当前的函数名
  • 2022-04-29Vue中如何根据主题获取不同的资源切换图片
  • 2022-04-29PHP保存数组到数据库
  • 2022-04-29如何使用HTML+CSS制作一个简单美观的导航栏(代码详解)
  • 2022-04-29MySQL主键还需要建立索引吗?

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 在centos下kanglephp怎么安装swoole扩展
    • 宝塔linux面板之​一键安装ffmpeg命令
    • Photoshop给外景草地女孩添加柔美逆光效果
    • PHP开发api接口验证实例
    • 聊聊Nodejs获取参数的四种方法
    • 百度编辑器无法插入视频、iframe怎么办
    • SQL语句中的with as该怎么用
    • 小程序swiper轮播CSS3动画及跳转到指定swiper-item的使用
    • 分享Laravel整合Bootstrap4的完整方案
    • 如何快速搭建uni-app项目?两种搭建方法分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有