返回指定字符串位置的函数FIELD(S,S1,S2,...) 与 FIND_IN_SET(S1,S2) 函数
FIELD(S,S1,S2,...) 与 FIND_IN_SET(S,S1) 函数 ------》 这2个函数都是返回指定字符串在源串中的出现的位置(皆是第一次出现的位置),但2个函数的参数不一样,前者是以列表形式的参数,后者是整体为一个整串的参数。(上边S皆为指定串,前者S1和S2为串列表,后者S1为一个整串)
FIELD(S,S1,S2,...) :
返回指定字符串位置的函数FIELD(S,S1,S2,...)
FIELD(S,S1,S2,...)返回字符串s在列表s1,s2,......中第一次出现的位置,在找不到s的情况下,返回值为0。
如果s为NULL,则返回值为0,原因是NULL不能同任何值进行同等比较。
FIELD('hi','hihi','hey','hi','bas')函数中字符串hi出现在列表的第3个字符串位置,因此返回结果为3
FIELD('hi','hihi','lo','hilo','foo') 列表中没有字符串hi,因此返回结果为0
FIND_IN_SET(S1,S2):
返回子串位置的函数FIND_IN_SET(S1,S2)
FIND_IN_SET(S1,S2)返回字符串s1在字符串列表s2中出现的位置,字符串列表是一个由多个逗号
‘,’分开的字符串组成的列表。如果s1不在s2或s2为空字符串,则返回值为0。如果任意一个参数为NULL,则返回值为NULL。
这个函数在第一个参数包含一个逗号‘,’时将无法正常运行。
虽然FIND_IN_SET(S1,S2)和FIELD(S,S1,S2,...)两个函数格式不同,但作用类似,都可以返回指定字符串在字符串列表中的位置