摘要:
下文讲述MySQL数据库中系统函数MAKE_SET的用法说明,如下所示;
系统函数MAKE_SET功能说明
MAKE_SET功能:
根据函数中的参数,生成一个使用逗号分隔的字符串
MAKE_SET系统函数语法:
MAKE_SET(bits,str1,str2,str3...)
----------参数说明----------
bits:位集合,如:1|2|3 ---注意这些数值会转换为相应的二进制,然后进行数据匹配
由第一位,第二位 第三位字符串返回新的字符串集合
str1,str2,str3:
待组合字符串的源字符信息
----------返回值说明---------
返回使用逗号分隔的新字符串
MAKE_SET系统函数注意事项:
1.当bits为0时,则返回空字符串
系统函数MAKE_SET示例说明
3转换为0011 对应第一位和第二位
mysql> select make_set(3,'mao1','mao2','365','com');
+---------------------------------------+
| make_set(3,'mao1','mao2','365','com') |
+---------------------------------------+
| mao1,mao2 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> select make_set(1,'mao1','mao2','365','com');
+---------------------------------------+
| make_set(1,'mao1','mao2','365','com') |
+---------------------------------------+
| mao1 |
+---------------------------------------+
1 row in set (0.00 sec)
3转换为0010 对应第二位
mysql> select make_set(2,'mao1','mao2','365','com');
+---------------------------------------+
| make_set(2,'mao1','mao2','365','com') |
+---------------------------------------+
| mao2 |
+---------------------------------------+
1 row in set (0.00 sec)
1|3转换为0001|0010 对应第一位和第二位
mysql> select make_set(1|3,'mao1','mao2','365','com');
+-----------------------------------------+
| make_set(1|3,'mao1','mao2','365','com') |
+-----------------------------------------+
| mao1,mao2 |
+-----------------------------------------+
1 row in set (0.00 sec)
8转换为1000 对应第四位
mysql> select make_set(8,'mao1','mao2','365','com');
+---------------------------------------+
| make_set(8,'mao1','mao2','365','com') |
+---------------------------------------+
| com |
+---------------------------------------+
1 row in set (0.00 sec)
9转换为1001 对应第四位,第一位
mysql> select make_set(9,'mao1','mao2','365','com');
+---------------------------------------+
| make_set(9,'mao1','mao2','365','com') |
+---------------------------------------+
| mao1,com |
+---------------------------------------+
1 row in set (0.00 sec)
10转换为1010 对应第四位,第二位
mysql> select make_set(10,'mao1','mao2','365','com');
+----------------------------------------+
| make_set(10,'mao1','mao2','365','com') |
+----------------------------------------+
| mao2,com |
+----------------------------------------+
1 row in set (0.00 sec)
11转换为1011 对应第四位,第二位,第一位
mysql> select make_set(11,'mao1','mao2','365','com');
+----------------------------------------+
| make_set(11,'mao1','mao2','365','com') |
+----------------------------------------+
| mao1,mao2,com |
+----------------------------------------+
1 row in set (0.00 sec)