一、使用说明
locate(substr,str);返回substr 第一次出现在str中的位置(从1开始数起)
select locate('aas','frraas3w');-- 返回4
select locate('vaas','frraas3w');-- 返回0
locate(substr,str,pos);从pos开始,返回substr 第一次出现在str中的位置(从1开始数起)
select locate('aas','frraas3w',2);-- 返回4
select locate('aas','frraas3w',5);-- 返回0
二、使用案例
有一张test表
id | name | mapstr |
---|---|---|
1 | LiMing | {"id_card":"61032620000101123x","address":"北京","hobby":"打乒乓球"} |
2 | Lily | {,"address":"上海","hobby":"踢足球"} |
3 | Jack | {"id_card":"61032620001111123x""address":"厦门","hobby":"打篮球"} |
4 | Mary | {"id_card":"61032620000919123x""address":"深圳","hobby":"打网球"} |
使用SQL查找"mapstr"字段中id_card为“610326200012011234”的记录
select * from test where locate('"id_card":"610326200012011234"',mapstr);