Rumah > pangkalan data > tutorial mysql > mysql中用正则表达式进行搜索匹配教程(二)

mysql中用正则表达式进行搜索匹配教程(二)

巴扎黑
Lepaskan: 2017-05-04 17:28:28
asal
2088 orang telah melayarinya

进行or匹配

为搜索两个串之一(或者为这个串,或者为另一个串),使用|,如下所示:

输入:

select prod_name from products where prod_name regexp '1000|2000' order by prod_name;
Salin selepas log masuk

输出:

QQ截图20170502181245.png

分析:语句中使用了正则表达式1000|2000。|为正则表达式的or操作符。它表示匹配其中之一,因此1000和2000都匹配并返回。

使用|从功能上类似于select语句中使用or语句,多个or条件可并入单个正则表达式。

注意:可以给出两个以上的or条件。例如'1000|2000|3000'将匹配1000或2000或3000.

匹配几个字符之一

匹配任何单一字符。但是,如果你只想匹配特定的字符,怎么办?

可以通过制定一组用[和]括起来的字符来完成,如下所示:

输入:select prod_name from products where prod_name regexp '[123] Ton’ order by prod_name;

输出:

QQ截图20170504132712.png

分析:这里,使用了正则表达式[123]Ton。[123]定义一组字符,它的意思是匹配1或2或3,因此,1ton和2ton都是匹配且返回(没有3ton)。

正如所见,[]是另一种形式的or语句。事实上,正则表达式[123]Ton为[1|2|3]Ton的缩写,也可以使用后者。但是,需要用[]来定义or语句查找什么。为更好地理解这一点,应看下面的例子:

输入:

select prod_name from products where prod_name regexp '1|2|3 Ton‘ order by prod_name;
Salin selepas log masuk

输出:

QQ截图20170504133218.png

分析:这并不是期望的输出。两个要求的行被检索出来,但还检索出了另外三行,之所以这样是由于MySQL假定你的意思是‘1’或‘2’或‘3ton’。除非把字符|扩在一个集合中,否则它将应用于整个串。

字符集合也可以被否定,即,它们将匹配除指定字符外的任何东西。为否定一个字符集,在集合的开始处放置一个^即可。因此,尽管[123]匹配字符1、2或3,但[^123]却匹配除这些字符外的任何东西。


匹配范围

集合可用来定义要匹配的一个或多个字符。例如,线面的集合讲匹配数字0到9:

[123456789]

为简化这种类型的集合,可以使用-来定义一个范围。下面的式子功能上等同于上述数字列表:

[0-9]

范围不限于完整的集合,[1-3]和[6-9]也是合法的范围。此外,范围不一定只是数值的,[a-z]匹配任意字母字符。

举个例子:

输入:

select prod_name from products where prod_name regexp '[1-5] Ton’ order by prod_name;
Salin selepas log masuk

输出:

QQ截图20170504135825.png

分析:这里使用正则表达式[1-5]Ton。[1-5]定义了一个范围,这个表达式意思是匹配1到5,因此返回3个匹配行。由于5ton匹配所以返回.5 ton。

【相关推荐】

1. mysql中用正则表达式进行搜索匹配教程(一)

2. MySQL免费在线视频教程

3. 韩顺平 2016年 最新MySQL基础视频教程

4.mysql中用正则表达式进行搜索匹配教程(三)

Atas ialah kandungan terperinci mysql中用正则表达式进行搜索匹配教程(二). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan