MySQL EXPORT_SET() 函数根据参数的二进制位生成一个使用指定分隔符拼接的字符串。
这里是 MySQL EXPORT_SET() 函数的语法:
EXPORT_SET(bits, on, off, separator, length)
参数
bits
必需的。一个数字。将 bits 转为二进制并反转后的各个位的值决定 on 还是 off 出现在该位置。
on
必需的。当位值为 1 时使用的字符串。
off
必需的。当位值为 0 时使用的字符串。
separator
可选的。分隔符或者分隔字符串,默认值为 ,。
length
可选的。集合的元素的个数,默认值为 64。
EXPORT_SET() 函数根据 bits 对应的二进制并反转后的值挑选对应的字符串,并返回一个逗号分隔的字符串集合。
比如 EXPORT_SET(5, 'Aa', 'Bb', '#', 4):
bits = 5, 5 的二进制位 101, 总长度为 4,左边补 0 变为 0101。然后反转变为 1010。
按 1010 中的每位的值使用 on 或者 off:
第一位为 1,则使用 Aa。
第二位为 0,则使用 Bb。
第三位为 1,则使用 Aa。
第四位为 0,则使用 Bb。
最后将所有的字符串使用分隔符 # 组合起来,即:Aa#Bb#Aa#Bb。
mysql> SELECT EXPORT_SET(5, 'Aa', 'Bb', '#', 4); +-----------------------------------+ | EXPORT_SET(5, 'Aa', 'Bb', '#', 4) | +-----------------------------------+ | Aa#Bb#Aa#Bb | +-----------------------------------+ mysql> SELECT EXPORT_SET(5, 'Y', 'N', ',', 4); +---------------------------------+ | EXPORT_SET(5, 'Y', 'N', ',', 4) | +---------------------------------+ | Y,N,Y,N | +---------------------------------+ mysql> SELECT EXPORT_SET(5, '1', '0', ',', 10); +----------------------------------+ | EXPORT_SET(5, '1', '0', ',', 10) | +----------------------------------+ | 1,0,1,0,0,0,0,0,0,0 | +----------------------------------+ mysql> SELECT EXPORT_SET(0, 'Y', 'N', ',', 4); +---------------------------------+ | EXPORT_SET(0, 'Y', 'N', ',', 4) | +---------------------------------+ | N,N,N,N | +---------------------------------+