MySQL的MAKE_SET()函数用于将多个值合并成一个Set值。它的基本语法如下:
MAKE_SET(bits, str1[, str2, ...])
参数说明:
- bits:是一个整数(1-64),用于指定SET值中各个元素是否出现的位置,binary 表示每一个位置的值为 0 或者 1
- str1,str2,...:要合并成Set的值,可以有多个
下面是一个实例,我们使用MAKE_SET()函数将三个值Jane, John和Tom合并成一个Set值:
SELECT MAKE_SET(0, 'Jane', 'John', 'Tom');
输出结果为:
Jane,John,Tom
另一个实例是将一个SET值转换为二进制:
SELECT BIN(MAKE_SET(1, 'Red', NULL, 'Blue', 'Green', NULL, 'Yellow'));
输出结果为:
100101
在上面的实例中,我们将 'Red','Blue','Green'和'Yellow'合并成一个Set值,并将其转换为二进制。最后的输出结果表示在此二进制串中,第一位( 从右向左)为1,表示'Red'出现在SET值中;第二位为0,表示在SET值中没有出现NULL;第三位为1,表示'Blue'在SET值中出现;第四位为1,表示'Green'在SET值中出现;第五位为0,表示在SET值中没有出现NULL;第六位为1,表示'Yellow'在SET值中出现。