MySQL字符串模式匹配扩展正则表达式模式匹配

MySQL字符串模式匹配扩展正则表达式模式匹配
标准SQL模式匹配

SQL模式匹配允许你使用_匹配任何单个字符,和任意数量的字符,%(包括零字符)。在MySQL,SQL模式默认是可以忽略不计的。这里是一些例子。注意:当你使用SQL模式,你不能使用=或!=;用喜欢或不喜欢比较运算符。

例如,在表宠物中,查找以B开头的名称:
从宠物名称中选择*;

+ + + + -------- -------- --------- ------ ------------ ------------ + + +

名业主| | |物种|性|出生|死亡|

+ + + + -------- -------- --------- ------ ------------ ------------ + + +

Buffy Harold的狗| | | | F | 1989-05-13 |空|

Bowser Diane的狗| | | | M | 1989-08-31 | 1995-07-29 |

+ + + + -------- -------- --------- ------ ------------ ------------ + + +

找到以财政年度结束的名字:
从宠物名称中选择*;

+ + + + -------- -------- --------- ------ ------------ ------- + + +

名业主| | |物种|性|出生|死亡|

+ + + + -------- -------- --------- ------ ------------ ------- + + +

蓬松的哈罗德猫| | | | F | 1993-02-04 |空|

Buffy Harold的狗| | | | F | 1989-05-13 |空|

+ + + + -------- -------- --------- ------ ------------ ------- + + +

找到W的名称:
从宠物名称中选择*;

+ + + + ---------- ------- --------- ------ ------------ ------------ + + +

名业主| | |物种|性|出生|死亡|

+ + + + ---------- ------- --------- ------ ------------ ------------ + + +

格温的猫爪| | | | M | 1994-03-17 |空|

Bowser Diane的狗| | | | M | 1989-08-31 | 1995-07-29 |

Whistler Gwen鸟| | | |空| 1997-12-09 |空|

+ + + + ---------- ------- --------- ------ ------------ ------------ + + +

为了找到只包含5个字符的名字,使用_模式特征:
MySQL >选择宠物,名字像_____ ;

+ + + + ------- -------- --------- ------ ------------ ------- + + +

名业主| | |物种|性|出生|死亡|

+ + + + ------- -------- --------- ------ ------------ ------- + + +

格温的猫爪| | | | M | 1994-03-17 |空|

Buffy Harold的狗| | | | F | 1989-05-13 |空|

+ + + + ------- -------- --------- ------ ------------ ------- + + +

MySQL提供了一个标准的SQL模式匹配,以及格式的基础上扩展的正则表达式模式基于UNIX工具如vi,grep匹配,和SED。

扩展正则表达式模式匹配

模式匹配的MySQL提供的其他类型的扩展正则表达式的使用。当你把这种模式,使用正则表达式而不是regexp运营商(或Rilke不是Rilke,它们是同义词)。

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

匹配任何单个字符。

字符类{…}匹配方括号中的任何字符。例如,{ }匹配a、b或c,以便命名一系列字符,使用一个字符—。

{ }匹配任何小写字母A-Z、0-9 }和{匹配任何数量的。

*匹配零个或多个事物在它前面。例如,x *,任何数量的X字符0-9,{ } *,任何数字,任何事情,任何。

正则表达式是大小写敏感的,但是如果你愿意,你可以使用一个字符类匹配写的两种方式。例如,{ AA }匹配小写或大写,{ a-za-z }匹配任何两写的信件。

如果它出现在测试值的任何位置,模式匹配(只要它们匹配整个值,SQL模式匹配)。

为了找到一个模式,以便它必须匹配测试值的开始或结束,在模式的开头使用否,或者在模式的结尾使用$。

说明如何扩展正则表达式的作品,如上面所示的查询使用regexp改写下面:

要查找以B开头的名称,请使用匹配名称的开头和{}匹配小写或大写B:
MySQL >选择*从宠物name regexp^ { BB };

+ + + + -------- -------- --------- ------ ------------ ------------ + + +

名业主| | |物种|性|出生|死亡|

+ + + + -------- -------- --------- ------ ------------ ------------ + + +

Buffy Harold的狗| | | | F | 1989-05-13 |空|

Bowser Diane的狗| | | | M | 1989-08-31 | 1995-07-29 |

+ + + + -------- -------- --------- ------ ------------ ------------ + + +

要找到一个以财政年度结尾的名字,使用$匹配名称的结尾:
MySQL >选择*从宠物那里叫fy___fckpd___5quot ;;;;; regexp

+ + + + -------- -------- --------- ------ ------------ ------- + + +

名业主| | |物种|性|出生|死亡|

+ + + + -------- -------- --------- ------ ------------ ------- + + +

蓬松的哈罗德猫| | | | F | 1993-02-04 |空|

Buffy Harold的狗| | | | F | 1989-05-13 |空|

+ + + + -------- -------- --------- ------ ------------ ------- + + +

若要找到w的名称,请使用{ }来匹配小写或大写W:
MySQL >选择*从宠物name regexp{ WW };

+ + + + ---------- ------- --------- ------ ------------ ------------ + + +

名业主| | |物种|性|出生|死亡|

+ + + + ---------- ------- --------- ------ ------------ ------------ + + +

格温的猫爪| | | | M | 1994-03-17 |空|

Bowser Diane的狗| | | | M | 1989-08-31 | 1995-07-29 |

Whistler Gwen鸟| | | |空| 1997-12-09 |空|

+ + + + ---------- ------- --------- ------ ------------ ------------ + + +

现在,如果正则表达式出现在值的任何地方及其模式匹配中,则不需要在前一个查询的两个方面放置一个通配符来匹配整个值。

就像使用SQL模式一样。

要查找包含5个字符的名称,请使用第一个和最后一个和匹配名称的$和5。两者之间:
MySQL >选择*从宠物name regexp^ ..... ___fckpd___7quot;;

+ + + + ------- -------- --------- ------ ------------ ------- + + +

名业主| | |物种|性|出生|死亡|

+ + + + ------- -------- --------- ------ ------------ ------- + + +

格温的猫爪| | | | M | 1994-03-17 |空|

Buffy Harold的狗| | | | F | 1989-05-13 |空|

+ + + + ------- -------- --------- ------ ------------ ------- + + +

您还可以使用{重复n次运算符重写前一个查询:
MySQL >选择*从宠物name regexp^。{ 5 } ___fckpd___8quot ;;;;;

+ + + + ------- -------- --------- ------ ------------ ------- + + +

名业主| | |物种|性|出生|死亡|

+ + + + ------- -------- --------- ------ ------------ ------- + + +

格温的猫爪| | | | M | 1994-03-17 |空|

Buffy Harold的狗| | | | F | 1989-05-13 |空|

+ + + + ------- -------- --------- ------ ------------ ------- + + +

总结

本文介绍了字符串模式匹配的一些知识,标准SQL模式匹配是SQL语言的标准,可以被其他关系数据库系统接受,扩展正则表达式模式匹配。

它是根据UNIX系统的标准开发的。它只能在MySQL上使用,但它的功能比标准的SQL模式要好。

tag:模式匹配字符串扩展正则表达式电脑软件

相关内容