判断一个字符串是否在另一个字符串中有两种方法find_in_set(str, strlist)和locate(substr, str),但是两者有不同的地方,在不用的场景需要使用不同的方法。
一、find_in_set(str, strlist)
返回 substr 在 str 中第一次出现的位置 ,其中strlist的字符串要使用 “,” 隔开,要不然无效
比如
表a
SELECT FIND_IN_SET(a,b) FROM `a` WHERE id=1; //0
SELECT FIND_IN_SET(a,b) FROM `a` WHERE id=2; //4
二、locate(substr, str)
返回 substr 在 str 中第一次出现的位置
SELECT LOCATE(a,b) FROM `a` WHERE id=1; //1
SELECT LOCATE(a,b) FROM `a` WHERE id=2; //1
由第二条语句可以看出,当a字符出现第一次时就会被匹配到,如果我们想匹配的是使用“,”隔开的最后的a时必须使用find_in_set(str, strlist)。