, FIELD('Hi','Hey','Lo','Hilo','foo') as c2;
+----+----+
| c1 | c2 |
+----+----+
| 3 | 0 |
+----+----+
18. 返回子串位置的函数:FIND_IN_SET(s1,s2)
FIND_IN_SET(s1,s2): 返回字符串s1在字符串s2中出现的位置,字符串列表是一个由多个逗号“,”分开的字符串组成的列表。如果s1不在s2中或s2为空字符串,则返回0。如果任何一个参数为NULL,则返回值为NULL。S1中不能包含一个逗号“,”。
mysql> select FIND_IN_SET('Hi','hihi,Hey,Hi,bas') as c1;
+----+
| c1 |
+----+
| 3 |
+----+
19. 选取字符串的函数:MAKE_SET(x,s1,s2,...)
MAKE_SET(x,s1,s2,...): 返回由x的二进制数指定的相应位的字符串组成的字符串,s1对应比特1,s2对应比特01,依此类推。s1,s2...中的NULL值不会被添加到结果中。
mysql> select MAKE_SET(1,'a','b','c') as c1, MAKE_SET(1|4,'hello','nice','world') as c2, MAKE_SET(1|4,'hello','nice',NULL,'world') as c3, MAKE_SET(0,'a','b','c') as c4;
+----+-------------+-------+----+
| c1 | c2 | c3 | c4 |
+----+-------------+-------+----+
| 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个字符组成的字符串;
MAKE_SET(1|4,'hello','nice',NULL,'world'):NULL值不会添加到结果中,因此只会返回第一个字符串;
MAKE_SET(0,'a','b','c'): 返回空字符串。
如果您们在尝试的过程中遇到什么问题或者我的代码有错误的地方,请给予指正,非常感谢!
联系方式:david.louis.tian@outlook.com
版权@:转载请标明出处,否则追究法律责任,后果自负!