MENU

MySQL 位运算函数

April 19, 2022 • Read: 1223 • 编码,MySQL

很多时候利用位运算的特性可以存储更多的数据,节省磁盘空间。而 MySQL 提供了一系列函数方便我们做进制转换

函数功能
BIN(N)返回十进制 N 的二进制表示
OCT(N)返回十进制 N 的八进制表示
HEX(N)返回十进制 N 的十六进制表示
CONV(N,X,Y)返回 X 进制 N 的 Y 进制表示,X和Y的范围是 2 ~ 36
BIT_COUNT(N)返回十进制 N 在二进制情况下包含几个 1

BIN 函数

返回十进制 N 的二进制表示

mysql> select bin(3);
+--------+
| bin(3) |
+--------+
| 11     |
+--------+
1 row in set (0.00 sec)

OCT 函数

返回十进制 N 的八进制表示

mysql> select oct(10);
+---------+
| oct(10) |
+---------+
| 12      |
+---------+
1 row in set (0.00 sec)

HEX 函数

返回十进制 N 的十六进制表示

mysql> select hex(20),hex(11);
+---------+---------+
| hex(20) | hex(11) |
+---------+---------+
| 14      | B       |
+---------+---------+
1 row in set (0.00 sec)

CONV 函数

返回 X 进制 N 的 Y 进制表示,X和Y的范围是 2 ~ 36,超出此范围返回 NULL

mysql> select conv(5,10,2),conv(101,2,10),conv(10,10,8);
+--------------+----------------+---------------+
| conv(5,10,2) | conv(101,2,10) | conv(10,10,8) |
+--------------+----------------+---------------+
| 101          | 5              | 12            |
+--------------+----------------+---------------+
1 row in set (0.00 sec)

BIT_COUNT 函数

返回十进制 N 在二进制情况下包含几个 1

mysql> select bit_count(2),bin(2);
+--------------+--------+
| bit_count(2) | bin(2) |
+--------------+--------+
|            1 | 10     |
+--------------+--------+
1 row in set (0.00 sec)

位运算还有一部分,但我归在聚合函数里面了。过几天会把聚合函数发出来。