MariaDB BIN() 函数使用指南

在 MariaDB 中,BIN() 是一个内置的字符串函数,它返回给定数字的二进制值的字符串表示。

MariaDB BIN() 语法

这里是 MariaDB BIN() 函数的语法:

BIN(num)

MariaDB BIN() 函数 与 CONV(num, 10, 2) 的结果相同。

参数

num
必需的。需要以二进制表示的数字。您可以提供一个很大的数字,比如 BIGINT

如果缺少参数,MariaDB 将报告错误: ERROR 1582 (42000): Incorrect parameter count in the call to native function ‘BIN’。

返回值

MariaDB BIN() 函数返回一个字符串,其表示给定数字的二进制值。

  • 如果参数 num 为非数字类型,BIN() 函数会首先尝试将其转为数字后再返回数字的二进制表示。
  • 如果参数 numNULLBIN() 函数将返回 NULL

MariaDB BIN() 示例

简单示例

这个语句使用 MariaDB BIN() 函数返回数字 8 的二进制值的字符串表示:

SELECT BIN(8);

结果:

+--------+
| BIN(8) |
+--------+
| 1000   |
+--------+

这和 CONV(8, 10, 2) 一样,如下:

SELECT CONV(8, 10 ,2);

结果:

+----------------+
| CONV(123,10,2) |
+----------------+
| 1111011        |
+----------------+

字符串参数

你可以为 MariaDB BIN() 函数提供字符串类型的参数, MariaDB 会首先尝试将其转为数字再返回其对应的二进制的字符串表示。

这个语句使用 MariaDB BIN() 函数返回数字 '8' 的二进制值的字符串表示:

SELECT
  BIN('8'),
  BIN('8A'),
  BIN('A8');

结果:

+----------+-----------+-----------+
| BIN('8') | BIN('8A') | BIN('A8') |
+----------+-----------+-----------+
| 1000     | 1000      | 0         |
+----------+-----------+-----------+

在本例中, MariaDB 首先尝试将字符串参数转为数字,再进行下一步计算:

  • '8' 转为 8,然后输出 8 的二进制值的字符串表示
  • '8A' 转为 8,然后输出 8 的二进制值的字符串表示
  • 'A8' 不能转为数字,因此返回 0

浮点类型的参数

如果您为 MariaDB BIN() 函数提供一个浮点类型的参数, MariaDB 会将浮点类型截断为整数,再返回整数的二进制值。

SELECT BIN(8.12);

结果:

+-----------+
| BIN(8.12) |
+-----------+
| 1000      |
+-----------+

在本示例中, MariaDB BIN() 函数会将 8.12 截断为 8,然后返回 8 的二进制值的字符串表示。

综合示例

下面是一个体现 MariaDB BIN() 所有用法的示例:

SELECT
    BIN(2),
    BIN(5),
    BIN(8),
    BIN(8.5),
    BIN('8A'),
    BIN('A8'),
    BIN('A'),
    BIN(NULL)\G

输出:

*************************** 1. row ***************************
   BIN(2): 10
   BIN(5): 101
   BIN(8): 1000
 BIN(8.5): 1000
BIN('8A'): 1000
BIN('A8'): 0
 BIN('A'): 0
BIN(NULL): NULL

结论

MariaDB BIN() 函数返回给定数字的二进制值的字符串表示。