一、使用說明
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);