MySQL MAKE_SET() 函数使用指南
MySQL MAKE_SET()
函数返回一个逗号分隔的字符串集合,该函数通过第一个参数对应的二进制决定是否其他字符串参数是否添加到结果集合中。
MAKE_SET()
语法
这里是 MySQL MAKE_SET()
函数的语法:
MAKE_SET(bits, str1, str2, ...)
参数
bits
- 必需的。一个数字。将
bits
转为二进制并反转后的各个位决定str1, str2, ...
是否出现在结果中。 str1, str2, ...
- 必需的。备选字符串。
str1, str2, ...
分别由bits
二进制并反转后的值中的第1, 2, ...
决定是否出现在结果中。
返回值
MAKE_SET()
函数从 str1, str2, ...
根据 bits
对应的二进制并反转后的值挑选对应的字符串,并返回一个逗号分隔的字符串集合。
参数 str1, str2, ...
中的 NULL
不会出现结果中。
比如 bits = 6
, 6
对应的二进制是 110
, 110
反转后 011
,那么 MAKE_SET()
函数返回的结果是 str2,str3
。
如果 bits
为 0
, MAKE_SET()
函数将返回空串。
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'
。