在MySQL中,LIKE关键字主要用于搜索匹配字段中的指定内容
语法格式:[NOT] LIKE '指定字符串'
- NOT:可选参数,字段中的内容与指定字符串不匹配时满足条件
- 字符串:指定用来匹配的字符串,可以是很完整的字符串,也可以包含通配符
示例:SELECT * FROM user WHERE name LIKE 'ws茹洁9480'
NOT LIKE示例:
SELECT * FROM user WHERE name NOT LIKE 'ws茹洁9480'
包含通配符查询
通配符是一种特殊语句,主要用来模糊查询。当不知道真正字符或者想不输入完整语句时,可以用来代替一个或多个真正的字符
模糊查询中包含两个通配符:
- %:最常用的通配符,代表任何长度的字符串,字符串的长度可以为0
- _:只能代表单个字符,字符的长度不能为0
包含通配符%的使用
例1:查询以指定字符串开头的值
语法格式:SELECT * FROM 表 WHERE 列 LIKE '指定字符串%'
示例:SELECT * FROM user WHERE name LIKE 'wsnk%'
例2:查询以指定字符串结束的值
语法格式:
SELECT * FROM 表 WHERE 列 LIKE '%指定字符串'
示例:
SELECT * FROM user WHERE name LIKE '%wsnk'
例3:查询包含指定字符串的值
语法格式:
SELECT * FROM 表 WHERE 列 LIKE '%指定字符串%'
示例:
SELECT * FROM user WHERE name LIKE '%wsnk%'
包含通配符_的使用
例:第三个字符以指定字符串开始,并后面只有三个字符
语法格式:SELECT * FROM 表 WHERE 列 LIKE '__指定字符串___'
示例:SELECT * FROM user WHERE name LIKE '__微___'
说明:_通配符一般在特定情况下使用,需要多少位就有几个通配符,可以与%通配符组合使用,但是项目中一般都是使用【%通配符例3】
注意:
1.MySQL中值不分区大小写,如果需要区分大小写,则加入BINARY关键字
语法格式:SELECT * FROM 表 WHERE 列 LIKE BINARY '%指定字符串%'
示例:SELECT * FROM user WHERE name LIKE BINARY '%WS%'
2.注意通配符左右的空格,空格会干扰通配符的匹配
语法格式:
SELECT * FROM 表 WHERE 列 LIKE '% 指定字符串%'
示例:
SELECT * FROM user WHERE name LIKE '% ws%'
3.注意NULL,通配符不能匹配NULL值
拓展:
如果查询内容中包含通配符,则可以使用""转义符
语法格式:SELECT * FROM 表 WHERE 列 LIKE '%指定字符\%串%'
示例:SELECT * FROM user WHERE name LIKE '% w\%s%'