MariaDB MAKE_SET() 函数使用指南
在 MariaDB 中,MAKE_SET() 是一个字符串函数,它返回一个逗号分隔的字符串集合,该函数通过第一个参数对应的二进制决定是否其他字符串参数是否添加到结果集合中。
MariaDB MAKE_SET() 语法
这里是 MariaDB MAKE_SET() 函数的语法:
MAKE_SET(bits, str1, str2, ...)
参数
bits- 必需的。一个数字。将
bits转为二进制并反转后的各个位决定str1, str2, ...是否出现在结果中。 str1, str2, ...- 必需的。备选字符串。
str1, str2, ...分别由bits二进制并反转后的值中的第1, 2, ...决定是否出现在结果中。
返回值
MariaDB MAKE_SET() 函数从 str1, str2, ... 根据 bits 对应的二进制并反转后的值挑选对应的字符串,如果二进制位是 1,则将对应的参数加入结果集合中,并返回一个逗号分隔的字符串集合。
参数 str1, str2, ... 中的 NULL 不会出现结果中。
比如 bits = 6, 6 对应的二进制是 110, 110 反转后 011,那么 MAKE_SET() 函数返回的结果是 str2,str3。
如果 bits 为 0, MAKE_SET() 函数将返回空串。
MariaDB MAKE_SET() 示例
SELECT
MAKE_SET(0, 'a', 'b', 'c', 'd'),
MAKE_SET(1, 'a', 'b', 'c', 'd'),
MAKE_SET(2, 'a', 'b', 'c', 'd'),
MAKE_SET(3, 'a', 'b', 'c', 'd'),
MAKE_SET(4, 'a', 'b', 'c', 'd')\G
输出:
*************************** 1. row ***************************
MAKE_SET(0, 'a', 'b', 'c', 'd'):
MAKE_SET(1, 'a', 'b', 'c', 'd'): a
MAKE_SET(2, 'a', 'b', 'c', 'd'): b
MAKE_SET(3, 'a', 'b', 'c', 'd'): a,b
MAKE_SET(4, 'a', 'b', 'c', 'd'): c在本示例中,
bits = 1,1对应的二进制是1,反过来是1,那么'a'对应的1,因此返回'a'。bits = 2,2对应的二进制是10,反过来是01,参数'a'对应的0,参数'b'对应的1,因此返回'b'。bits = 3,3对应的二进制是11,反过来是11,参数'a'对应的1,参数'b'对应的1,因此返回'a,b'。bits = 4,4对应的二进制是100,反过来是001,参数'a'对应的0,参数'b'对应的0,参数'c'对应的1,因此返回'c'。
您可以使用 BIN() 函数计算一个数字的二进制。
结论
MariaDB MAKE_SET() 函数返回一个逗号分隔的字符串集合,该函数通过第一个参数对应的二进制决定是否其他字符串参数是否添加到结果集合中。