MySQL UUID_TO_BIN() 函数

MySQL UUID_TO_BIN() 函数将一个指定的字符串的 UUID 转为一个二进制 UUID 并返回结果。

UUID_TO_BIN() 函数是 BIN_TO_UUID() 函数的逆行操作。

UUID_TO_BIN() 语法

这里是 MySQL UUID_TO_BIN() 函数的语法:

UUID_TO_BIN(string_uuid, swap_flag)

参数

string_uuid
必需的。 一个二进制的 UUID。
swap_flag
可选的。 交换标识,可用只为 01。默认值是 0

返回值

MySQL UUID_TO_BIN() 函数将一个指定的字符串的 UUID 转为一个二进制 UUID 并返回结果。

如果参数 swap_flag1UUID_TO_BIN() 函数将交换 UUID 中的时间低位部分和时间高位部分。

如果参数 string_uuidNULL,该函数将返回 NULL

如果任意一个参数不合法,将会产生一个错误。

UUID_TO_BIN() 示例

本示例展示了 UUID_TO_BIN() 函数的基本用法。

首先,让我们创建一个字符串 UUID,如下:

set @string_uuid = 'b45f7406-cf63-11ec-aeab-0242ac110003';

然后,让我们将上面创建的二进制 UUID 转为二进制 UUID:

SELECT UUID_TO_BIN(@string_uuid);
+---------------------------+
| UUID_TO_BIN(@string_uuid) |
+---------------------------+
| �_t�c쮫B�               |
+---------------------------+

这里,二进制的数据在命令行中并不是可读的。我们可以使用 HEX() 函数将它转为十六进制字符串:

SELECT HEX(UUID_TO_BIN(@string_uuid));
+----------------------------------+
| HEX(UUID_TO_BIN(@string_uuid))   |
+----------------------------------+
| B45F7406CF6311ECAEAB0242AC110003 |
+----------------------------------+

当然,我们也可以使用 BIN_TO_UUID() 函数:

SELECT BIN_TO_UUID(UUID_TO_BIN(@string_uuid));
+----------------------------------------+
| BIN_TO_UUID(UUID_TO_BIN(@string_uuid)) |
+----------------------------------------+
| b45f7406-cf63-11ec-aeab-0242ac110003   |
+----------------------------------------+

让我们使用使用 swap_flag = 1 参数将 UUID 中时间低位部分和时间高位部分交换:

SELECT HEX(UUID_TO_BIN(@string_uuid, 1));
+-----------------------------------+
| HEX(UUID_TO_BIN(@string_uuid, 1)) |
+-----------------------------------+
| 11ECCF63B45F7406AEAB0242AC110003  |
+-----------------------------------+

这里, B45F740611EC 交换了位置。