MySQL如何匹配字符串函数
作者:暗生琴愫
MySQL提供多个字符串匹配函数,如like、locate、position、instr和find_in_set,其中locate、position、instr和find_in_set均返回字符在字段中的索引(如果包含),否则返回0,特别地,find_in_set适用于字段为数组的情况
MySQL匹配字符串函数
注意:MySQL索引从1开始
1、like
select * from 表名 where 字段名 like "%字符%";
2、locate(字符,字段)
如果包含,返回>0的数(字符所在的第一个索引),否则返回0
-- select * from 表名 where LOCATE('字符', 字段); select LOCATE('ab', 'abcd'); > 1
3、position(字符 in 字段)
如果包含,返回>0的数(字符所在的第一个索引),否则返回0
-- select * from 表名 where POSITION('字符' IN 字段); select POSITION('ab' IN 'abcd'); > 1
4、instr(字段,字符)
如果包含,返回>0的数(字符所在的第一个索引),否则返回0
注意:字段在前,要匹配的字符串在后
-- select * from 表名 where INSTR(字段, '字符'); select INSTR('abcd', 'b'); > 2
5、find_in_set(字符,字段)
如果包含,返回>0的数(字符所在的第一个索引),否则返回0
字段以","分割开,常用于字段为数组的情况。
-- select * from 表名 where FIND_IN_SET('字符', 字段); select FIND_IN_SET('张三','aa,bb,11,张三'); > 4 select FIND_IN_SET('','aa,bb,11,张三,'); > 5
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。