数据库MySQL 通配符与模式匹配正则表达式
admin
2023-05-28 07:41:18
0

今天一个同事说他写了一个sql语句查询没有结果,他是这样写的

 SELECT * FROM Persons WHERE City LIKE '[BLN]%'

数据库MySQL 通配符与模式匹配正则表达式

数据库MySQL 通配符与模式匹配正则表达式

数据库MySQL 通配符与模式匹配正则表达式


那么就再理一下:

SQL通配符是使用特殊字符或语法拼写,用来执行模糊搜索指令的语句。查询数据库中的数据时,sql通配符可以替代一个或多个字符。使用是必须与 LIKE 运算符一起使用。在SQL中可以使用的通配符有:

通配符
说明
%

替代一个或多个字符

-仅替代一个字符
[charlist]字符列中的任何一个字符
[^charlist]或[!charlist]不在字符列中的任何单一字符

"%":匹配任意数目的字符(零个或多个);"_":匹配任何单个字符;

在使用通配符时 可以用 LIKE或NOT LIKE 比较操作符,而不能用 = 或 !=

以user表为例:

查询以a结尾的记录:select * from user where username like '%a';   

查询以a开头的用户名:select * from user where username like 'a%';

查询不是以a开头的用户名:select * from user where username like 'a%';

查询包含a的用户名:select * from user where username like '%a%';

查询有两个字符的用户名:select * from user where username like '__';


重点在这里:

MySQL模式匹配的其他类型是使用扩展正则表达式,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,之后遇到HIVE可以自己查下LIKE 、RLIKE)。 


扩展正则表达式的一些字符是: 

"."  匹配任何单个的字符,一个字符类“[...]”匹配方括号内的任何字符如,"[abc]" 匹配"a"、"b"或"c"。为了命名字符的一个范围,使用一个连接符"-" 。"[a-z]" 匹配任何小写字母,而"[0-9]"匹配任何数字。 
"* "  匹配零个或多个在它前面的东西。例如,"x*" 匹配任何数量的 "x" 字符,"[0-9]*" 匹配的任何数量的数字,而“.*”匹配任何数量的任何字符。

 
另外,正则表达式是区分大小写的,当然也可以使用一个字符类同事匹配大小写如,"[aA]" 匹配小写或大写的"a"而"[a-zA-Z]"匹配两种写法的任何字母。 


为定位一个模式,以便匹配目标值的开始或末尾,在模式开始处使用“^”或在模式的结尾用“$”。 下面是使用REGEXP写LIKE查询:

查询city以 “L”开头的人信息,使用“^”匹配名字的开始并且“[lL]”匹配小写或大写的“l”

select * from Persons where City REGEXP "^[lL]";

查询lastname以“sh”结尾的人,使用“$”匹配名字的结尾: 

 SELECT * FROM Persons WHERE LastName REGEXP "sh$";

查询lastname包含一个"A"的人,使用“[aA]”匹配小写或大写的“a”: 

SELECT * FROM Persons WHERE LastName REGEXP "[aA]";

查询city名恰好包含6个字符的记录,使用“^”和“$”匹配名字的开始和结尾,和6个“.”实例在两者之间: 

SELECT * FROM Persons WHERE city REGEXP "^......$";

也可以使用“{n}”“重复n次”操作符: 

SELECT * FROM pet WHERE name REGEXP "^.{6}$";

相关内容

热门资讯

特朗普:或不得不再让油价上涨 当地时间8月5日,美国总统特朗普在拉斯维加斯一场活动上发表演讲时称,近期油价已下跌并在一定程度上趋于...
特朗普学签新政阴影下,中国人还... 【文/观察者网专栏作者 狄薇薇】众所周知,特朗普卷土重来后,对以中国为代表的全球留美学生发起了一场“...
飞亚达申请高精度轴类气动工装专... 国家知识产权局信息显示,深圳市飞亚达科技发展有限公司申请一项名为“一种高精度轴类气动工装”的专利,公...
噪声在线监测仪的应用场景与选型... 噪声在线监测仪是环境噪声监测领域常用的设备类型,广泛应用于城市功能区监测、建筑施工场地、工业企业厂界...
“最长太空出差”归来后神二十一... “最长太空出差”归来后神二十一乘组首次公开亮相 8月5日下午,在北京航天城举行的记者见面会上,指令...
神二十一乘组“最长太空出差”归... 新华社北京8月5日电(刘艺、占康、黄一宸)创造单个乘组在轨驻留时长纪录的神舟二十一号航天员乘组,5日...
一场被遗忘的战争,彻底杀红了眼 世界的目光,总是有限的。当越来越多的目光,聚焦在中东的时候;俄乌似乎成了一场被遗忘的战争,尽管正变得...
2nm旗舰价格集体起飞:500... 快科技8月5日消息,博主数码闲聊站表示,由于2nm芯片成本高昂,搭载该平台的终端起步价将超过5000...
美国制裁中国的帮凶,挨了一记重... 执笔/胡一刀8月5日,商务部集中打出一套反制“组合拳”。这套“组合拳”包括,加强无人机相关两用物项对...
炸河床、停核电、运费暴涨……百... 据美国消费者新闻与商业频道 (CNBC)8月5日报道,极端干旱席卷欧洲,莱茵河、多瑙河水位骤降,内河...