MariaDB EXPORT_SET() 函数使用指南

在 MariaDB 中,EXPORT_SET() 是一个内置的字符串函数,它返回一个字符串,该字符串由第一个参数的二进制位指示的字符串通过指定的分隔符拼接而成。

EXPORT_SET() 语法

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

EXPORT_SET(bits, on, off, separator, length)

参数

bits
必需的。一个数字。将 bits 转为二进制并反转(从右向左)后的各个位的值决定 on 还是 off 出现在该位置。
on
必需的。当位值为 1 时使用的字符串。
off
必需的。当位值为 0 时使用的字符串。
separator
可选的。分隔符或者分隔字符串,默认值为 ,
length
可选的。集合的元素的个数,默认值为 64

您应该至少提供 3 个参数,否则 MariaDB 将报告错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function ‘EXPORT_SET’。

返回值

MariaDB EXPORT_SET() 函数根据 bits 对应的二进制并反转后的值挑选对应的字符串,并返回一个逗号分隔的字符串集合。

如果任何参数为 NULLEXPORT_SET() 函数将返回 NULL

比如 EXPORT_SET(5, 'Aa', 'Bb', '#', 4)

  1. bits = 55 的二进制位 101 (此结果可用 BIN() 函数返回), 总长度为 4,左边补 0 变为 0101。然后反转(从右向左)变为 1010

  2. 1010 中的每位的值使用 on 或者 off:

    1. 第一位为 1,则使用 Aa
    2. 第二位为 0,则使用 Bb
    3. 第三位为 1,则使用 Aa
    4. 第四位为 0,则使用 Bb
  3. 最后将所有的字符串使用分隔符 # 组合起来,即:Aa#Bb#Aa#Bb

MariaDB EXPORT_SET() 示例

基本示例

这个语句展示了 MariaDB EXPORT_SET() 的基本用法:

SELECT EXPORT_SET(5, 'Aa', 'Bb', '#', 4);

输出:

+-----------------------------------+
| EXPORT_SET(5, 'Aa', 'Bb', '#', 4) |
+-----------------------------------+
| Aa#Bb#Aa#Bb                       |
+-----------------------------------+

默认值

如果您不提供分隔符, MariaDB EXPORT_SET() 将使用逗号 , 作为默认分隔符。

如果您不指定数量,MariaDB EXPORT_SET() 将使用 64 作为默认位数。

SELECT EXPORT_SET(5, 'A', 'B');

输出:

+---------------------------------------------------------------------------------------------------------------------------------+
| EXPORT_SET(5, 'A', 'B')                                                                                                         |
+---------------------------------------------------------------------------------------------------------------------------------+
| A,B,A,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B,B |
+---------------------------------------------------------------------------------------------------------------------------------+

结论

在 MariaDB 中,EXPORT_SET() 是一个内置的字符串函数,它返回一个字符串,该字符串由第一个参数的二进制位(从高位到地位)指示的字符串通过指定的分隔符拼接而成。