一、阅读该文章,你应该了解MySQL基本select语法,正则表达式基础,SQL通配符。
二、模糊查询
1.主要有两种方式:
like与SQL通配符 和 正则表达式模糊查询。
2.like与SQL ,必须使用like关键字
- SQL的通配符如下:
% 百分号: 替代一个或者多个字符
_ 下划线:仅替代一个字符
[字符列] :字符列中任何一个单一字符
[^字符列] 或者[!字符列]: 不在字符列中的任何一个单一字符
- 用法如下
select 字段列表 from 表名 where 字段 like 'Ne%'; 表示:查询以Ne开头的数据
select 字段列表 from 表名 where 字段 like '%Ne%'; 表示:查询含有Ne的数据
select 字段列表 from 表名 where 字段 like ‘L_ve'; 表示:查询含有 L+某一个字符+ve的数据
select 字段列表 from 表名 where 字段 like ’[abc]%'; 表示:查询a/b/c开头的数据
3.正则表达式模糊查询 必须使用regexp关键字
- 常用元字符,参考我的另一篇文章有列举:https://blog.csdn.net/hernofogot/article/details/83997041
牢记如下规则:
点 . , 尖角符 ^ , 美元符 $ , 字符集 [ ] , 逻辑或 | , 星号 * , 加号 + , 问号 ?,大括号 { }
- 语法如下:
select 字段列表 from 表名 where 字段 [not] regexp [binary] '正则表达式';
- 用法如下:
select 字段列表 from 表名 where 字段 regexp 'j.' ; 表示:查询 j 开头且为两个字符的数据
select 字段列表 from 表名 where 字段 regexp '158[0-9]{9}'; 表示:查询 158开头,11位的电话号码
。。。。。。
三、总结
- 正则表达式的模式匹配比like 运算符的模式匹配更加强大、灵活。