LOCATE函数其实我的理解就是grep的功能,只不过它会返回在字符串所在
的位置,当然根据公式的不同也会有很多实际应用
官方的两种用法是
语法1:
LOCATE(substr,str)
返回字符串substr中第一次出现子字符串的位置 str
语法2:
LOCATE(substr,str,pos)
返回字符串substr中第一个出现子 字符串的 str位置,从位置开始 pos。0 如果substr不在,则 返回str。返回 NULL如果substr 或者str是NULL
最简单的用法
select locate ('y','zyc') 这个y在第二个位置,他就会返回2
稍微加一些参数比如select locate ('y','zyc')> 0,这个意思就很好理解字符y在zyc中存在则返回1,不存在则返回0(>0的条件)
这个用法稍加变形就可以用到一些实际的例子中,比如判断哪个字符串在表中的哪个字段是否存在,如果存在则返回该字段信息
select locate ('u','zyc')> 0;
判断哪个字符串在表中的哪个字段是否存在,如果存在则返回数据
SELECT
aa.*
FROM
zyc.iccid aa
WHERE
aa.id= '51107085'
AND locate ('FIS', concat(aa.createdBy))>0;