iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Mysql位运算简化一对多关系的示例分析
  • 709
分享到

Mysql位运算简化一对多关系的示例分析

2024-04-02 19:04:59 709人浏览 泡泡鱼
摘要

这篇文章主要介绍Mysql位运算简化一对多关系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!语法& : 按位与,二进制位同时都为1的位设为1。| :  按

这篇文章主要介绍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

应用场景

每个景点包含很多属性,例如适合旅游的月份,我们一般的做法可能有两种:

  1. 是增加一个varchar字段,每个月份之间用一个特殊符号分隔保存,例如:"1,2,22,65,7"

  2. 建立一个关系表,在这里不能使用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位运算简化一对多关系的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: Mysql位运算简化一对多关系的示例分析

本文链接: https://www.lsjlt.com/news/53753.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql位运算简化一对多关系的示例分析
    这篇文章主要介绍Mysql位运算简化一对多关系的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!语法& : 按位与,二进制位同时都为1的位设为1。| :  按...
    99+
    2024-04-02
  • Java位运算的示例分析
    这篇文章给大家分享的是有关Java位运算的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。位运算符可以分为逻辑运算符(包括~、&、|和...
    99+
    2023-06-02
  • Mysql体系化之JOIN运算实例分析
    这篇文章主要介绍了Mysql体系化之JOIN运算实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql体系化之JOIN运算实例分析文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • shell中基本计算、逻辑运算、位运算的示例分析
    这篇文章给大家分享的是有关shell中基本计算、逻辑运算、位运算的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。以下面的格式提供运算表达式:$(( expression )) $ echo $((5*(3...
    99+
    2023-06-09
  • java使用布尔运算代替位运算的示例分析
    这篇文章将为大家详细讲解有关java使用布尔运算代替位运算的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。布尔运算代替位运算虽然位运算的速度远远高于算术运算,但是在条件判断时,使用位运算替代布尔运...
    99+
    2023-06-27
  • c语言中移位运算符的示例分析
    这篇文章主要介绍c语言中移位运算符的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、处理低级存储...
    99+
    2023-06-15
  • laravel多对多关联模型的示例分析
    这篇文章给大家分享的是有关laravel多对多关联模型的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。关联模型(多对多)多对多关系(抽象)例:一篇文章可能有多个关键词,一个关键词可能被多个文章使用。 关键...
    99+
    2023-06-20
  • MySQL与Oracle数据类型对应关系的示例分析
    这篇文章将为大家详细讲解有关MySQL与Oracle数据类型对应关系的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MySQL与Oracle两种数据库在工作中,都...
    99+
    2024-04-02
  • Oracle查询优化日期运算的示例分析
    小编给大家分享一下Oracle查询优化日期运算的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 加减日、月、年...
    99+
    2024-04-02
  • CentOS系统环境精简优化的示例分析
    这篇文章主要介绍CentOS系统环境精简优化的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一步、删除不必要的自带软件包yum remove Deployment_Guide-en-US finger cu...
    99+
    2023-06-10
  • Python中图像点运算与灰度化处理的示例分析
    这篇文章主要介绍了Python中图像点运算与灰度化处理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一.图像点运算概念图像点运算(Point Operation)指...
    99+
    2023-06-29
  • MySQL中大对象多版本并发控制的示例分析
    小编给大家分享一下MySQL中大对象多版本并发控制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL 8.0:I...
    99+
    2024-04-02
  • MySql优化之体系结构及存储引擎的示例分析
    这篇文章给大家分享的是有关MySql优化之体系结构及存储引擎的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MySQL结构体系总体上, 我们可以把 MySQL 分成三...
    99+
    2024-04-02
  • 使用shell脚本每天对MySQL多个数据库自动备份的示例分析
    这篇文章主要介绍了使用shell脚本每天对MySQL多个数据库自动备份的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux下使用shell脚本,结合cronta...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作