MAKE_SET(bits,str1,str2,...)
返回一个设定值 (一个包含被‘,’号分开的字字符串的字符串) ,由在bits 组中具有相应的比特的字符串组成。str1 对应比特 0, str2 对应比特1,以此类推。str1, str2, ...中的 NULL值不会被添加到结果中。
mysql> SELECT MAKE_SET(1,'a','b','c'); -> 'a'mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world'); -> 'hello,world'mysql> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world'); -> 'hello'mysql> SELECT MAKE_SET(0,'a','b','c'); -> ''
不明白这个bits组,也不明白是怎样通过它来选取字符串的。
返回一个设定值 (一个包含被‘,’号分开的字字符串的字符串) ,由在bits 组中具有相应的比特的字符串组成。str1 对应比特 0, str2 对应比特1,以此类推。str1, str2, ...中的 NULL值不会被添加到结果中。
mysql> SELECT MAKE_SET(1,'a','b','c'); -> 'a'mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world'); -> 'hello,world'mysql> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world'); -> 'hello'mysql> SELECT MAKE_SET(0,'a','b','c'); -> ''
不明白这个bits组,也不明白是怎样通过它来选取字符串的。
如果str1对应0的话,
mysql> SELECT MAKE_SET(0,'a','b','c'); -> ''
岂不是应该是'a'?
比如0101怎么就匹配'hello','world'呢?
.....
右面的第N个bit,对面左起第N个参数0101,亦即第一、三个参数有用