当前位置:   article > 正文

mysql用到按位与运算符&_mysql 按位与

mysql 按位与

按位与运算符"&"是双目运算符

功能:将二进制数按照位的对应相与,得到一个新的二进制数。1与0为0;1与1为1;0与0为0

二进制数

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”。
十进制每次都要除以二,一直除到零为止,能整除的系数就为“0”,不能整除的就为“1”,最后将得到的系数从下往上排列即可。

5的二进制是101

5/2=2 1 2/2=1 0 1/2=0 1
  • 1

&的运算

例如:9&5可写算式如下:
    00001001(9的二进制补码)
&   00000101(5的二进制补码)
=	00000001(1的二进制补码)
可见9&5=1
  • 1
  • 2
  • 3
  • 4
  • 5

&的实际应用

订单表t_order表字段为枚举值,且由二进制位构成,具体如下:

WorkSheetType INT DEFAULT 1 comment '运送类型'
/*
1.空运出口 2.空运进口 4.海运整柜出口 8.海运整柜进口 16海运拼箱出口 32海运拼箱进口. 
64.快递出口  128.快递进口 256.铁运整柜出口 512.铁运整柜进口 1024.铁运拼箱出口 
2048.铁运拼箱进口   4096.铁派小单     8192. FBA小单      16384.铁派大单     
32768.FBA大单 65,536‬.空派小单    131,072 空派大单  262,144 铁运大单 524,288 小包提货单 
1,048,576 小包装袋单 2,097,152 小包出库单 4,194,304 小包包裹 8388608 陆运
*/

此时 我需要筛选海运的运送类型 
包含4.海运整柜出口+8.海运整柜进口+16海运拼箱出口+32海运拼箱进口
筛选表达式如下:
select *
from t_order
where WorkSheetType & (4+8+16+32)>=1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/978962
推荐阅读
相关标签
  

闽ICP备14008679号