前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL函数BIT_AND、BIT_OR、BIT_XOR和BIT_COUNT的理解

SQL函数BIT_AND、BIT_OR、BIT_XOR和BIT_COUNT的理解

作者头像
Yiiven
发布2022-12-15 14:18:04
9860
发布2022-12-15 14:18:04
举报
文章被收录于专栏:怡文菌怡文菌

先看看BIT_AND(),BIT_OR(),BIT_XOR()

语法:BIT_AND(expr),BIT_OR(expr),BIT_XOR(expr)

现在有数据表如下:

代码语言:javascript
复制
mysql>CREATE TABLE test (cate VARCHAR(1), number INT);
mysql>INSERT INTO test VALUES 
     ->('a',111),('a',110),('a',100),
     ->('a=b',000),('b',001),('b',011);
mysql>SELECT * FROM test;
+------+--------+
| cate | number | 
+------+--------+
| a    |    111 | 
+------+--------+
| a    |    110 | 
+------+--------+
| a    |    100 | 
+------+--------+
| b    |    000 | 
+------+--------+
| b    |    001 | 
+------+--------+
| b    |    011 | 
+------+--------+

BIT_AND(),BIT_OR(),BIT_XOR()查询结果:

代码语言:javascript
复制
mysql>SELECT cate, BIT_AND(number), BIT_OR(number), BIT_XOR(number) FROM test GROUP BY cate;
+------+-----------------+----------------+-----------------+
| cate | BIT_AND(number) | BIT_OR(number) | BIT_XOR(number) |
+------+-----------------+----------------+-----------------+
| a    |             100 |            111 |             101 |
| b    |               0 |             11 |              10 |
+------+-----------------+----------------+-----------------+

解析:

BIT_AND():按位与

a = 111(b) & 110(b) & 100(b)=100(b);

b = 000(b) & 001(b) & 011(b)=000(b);

BIT_OR():按位或

a = 111(b) | 110(b) | 100(b)=111(b);

b = 000(b) | 001(b) | 011(b)=011(b);

BIT_XOR():按位异或

a = 111(b) ^ 110(b) ^ 100(b)=101(b);

b = 000(b) ^ 001(b) ^ 011(b)=010(b);

关于位运算是如何进行的,请参考上一篇文章:与(&)、或(|)、异或(^) – 位运算详解

再来看看BIT_COUNT()

语法:BIT_COUNT( expr )

例:

代码语言:javascript
复制
mysql>SELECT BIT_COUNT(7) AS a,BIT_COUNT(8) AS b;
+---+---+
| a | b |
+---+---+
| 3 | 1 |
+---+---+

解析:按位统计1的数量

7(d)=111(b),所以BIT_COUNT(7)=3

8(d)=1000(b),所以BIT_COUNT(8)=1

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:

原文出处:Yiiven https://cloud.tencent.com/developer/article/2193173

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先看看BIT_AND(),BIT_OR(),BIT_XOR()
  • 再来看看BIT_COUNT()
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档