注册

详解MySQL的MAKE_SET()函数:返回一个包含多个值的集合

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值中出现。