Mysql 模糊匹配(字符串str中是否包含子字符串substr)

时间:2023-03-09 06:38:19
Mysql  模糊匹配(字符串str中是否包含子字符串substr)
1、LIKE         通常与 % 一同使用,类似于一个元字符的搜索。若substr不在str中,则返回0。
SELECT  'test' LIKE '%e%' as `ret`;  # 1
SELECT 'test' LIKE '%a%' as `ret`; # 0

2、INSTR(str,substr) 返回字符串 str 中子字符串的第一次出现位置。若substr不在str中,则返回0。
SELECT INSTR('test', 't'); # 1
SELECT INSTR('test', 'a'); # 0

3、LOCATE(substr,str)  返回字符串 str中子字符串substr的第一次出现位置。若substr不在str中,则返回0。
LOCATE(substr,str,pos) 返回字符串 str中子字符串substr的第 pos位置后第一次出现位置。若substr不在str中,则返回0。
SELECT LOCATE('t','test'); # 1
SELECT LOCATE('a','test'); # 0 SELECT LOCATE('t','test',2); # 4

4、POSITION(substr IN str) 返回字符串 str中子字符串substr的第一次出现位置。若substr不在str中,则返回0。可看作LOCATE(substr,str)别名
SELECT POSITION('t' IN 'test'); # 1
SELECT POSITION('a' IN 'test'); # 0