MySQL MAKE_SET()函数的用法
在 MySQL 中,MAKE_SET()函数的功能是按照二进制位来选取字符串。
MAKE_SET() 函数的语法格式如下:
例如,x 的值是 5,5 的二进制是 0101,这个二进制从右往左的第 1 位和第 3 位是 1,所以选取 s1 和 s3。s1,s2,...,sn 中的 NULL 值不会被添加到结果中。
【例4.52】使用MAKE_SET函数根据二进制位选取指定字符串,输入语句如下:
MAKE_SET(1,'a','b','c') 返回第 1 个字符串;MAKE_SET(1 | 4,'hello','nice','world') 返回从左端开始第 1 个和第 3 个字符串组成的字符串;NULL 不会添加到结果中,因此 SET(1|4,'hello','nice',NULL,'world') 只返回第 1 个字符串“hello”;SET(0,'a','b','c') 返回空字符串。
MAKE_SET() 函数的语法格式如下:
MAKE_SET(x, s1, s2, ..., sn)
- x 是一个整数,其二进制表示将用于选择字符串。
- s1, s2, ..., sn 是一系列字符串参数,其顺序对应 x 的二进制位。
例如,x 的值是 5,5 的二进制是 0101,这个二进制从右往左的第 1 位和第 3 位是 1,所以选取 s1 和 s3。s1,s2,...,sn 中的 NULL 值不会被添加到结果中。
【例4.52】使用MAKE_SET函数根据二进制位选取指定字符串,输入语句如下:
mysql> SELECT MAKE_SET(1,'a','b','c') as col1, MAKE_SET(1 | 4,'hello','nice','world') as col2,MAKE_SET(1 | 4,'hello','nice',NULL,'world') as col3, MAKE_SET(0,'a','b','c') as col4; +------+-------------+-------+------+ | col1 | col2 | col3 | col4 | +------+-------------+-------+------+ | a | hello,world | hello | | +------+-------------+-------+------+1 的二进制值为 0001,4 的二进制值为 0100,1 与 4 进行或操作之后的二进制值为 0101,从右到左第 1 位和第 3 位为 1。
MAKE_SET(1,'a','b','c') 返回第 1 个字符串;MAKE_SET(1 | 4,'hello','nice','world') 返回从左端开始第 1 个和第 3 个字符串组成的字符串;NULL 不会添加到结果中,因此 SET(1|4,'hello','nice',NULL,'world') 只返回第 1 个字符串“hello”;SET(0,'a','b','c') 返回空字符串。