MySQL基础02(正则表达式)

时间:2020-09-24 21:47:38   收藏:0   阅读:58

MySQL基础02(正则表达式)

1. 过滤数据


1.1 WHERE子句

使用SELECT语句的WHERE子句指定搜索条件。

WHERE子句的操作符

操作符 说明
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
BETWEEN 在指定的两个值之间

1.2 组合WHERE子句

  1. AND子句的方式
  2. OR子句的方式

1.2.1 AND操作符

1.2.2OR操作符

1.2.3ANDOR组合

1.2.4IN操作符

1.2.5NOT操作符

2. 用通配符进行过滤


**2.1 LIKE操作符 **

2.1.1 百分号(%)通配符

2.1.2 下划线(_)通配符

SELECT prod_id, prod_name
FROM products
WHERE prod_name LIKE ‘_ ton anvil‘;

3. 用正则表达式进行搜索


正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较;

MySQL用WHERE子句对正则表达式提供了初步的支持,允许我们指定正则表达式,过滤SELECT检索出来的数据。

注意: MySQL仅支持多数正则表达式实现的一个很小的子集。

3.1 基本字符匹配

-- LIKE 没有匹配成功,不返回数据
SELECT prod_name
FROM products
WHERE prod_name LIKE ‘1000‘
ORDER BY prod_name;

-- REGEXP 匹配成功,返回数据
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘1000‘
ORDER BY prod_name;

3.2 进行OR匹配

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘1000|2000‘
ORDER BY prod_name;

3.3 匹配几个字符之一

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘[123] Ton‘
ORDER BY prod_name;

3.4 匹配范围

3.5 匹配特殊字符

3.6 匹配字符集

3.7 匹配多个实例

元字符 说明
* 0个或多个匹配
+ 1个或多个匹配(等于{1,})
0个或1个匹配(等于{0,1})
{n} 指定数目的匹配
{n,} 不少于指定数目的匹配
{n,m} 匹配数目的范围(m不超过255)
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘\\([0-9] sticks?\\)‘
ORDER BY prod_name;
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘[[:digit:]]{4}‘
ORDER BY prod_name;

3.7 定位符

元字符 说明
^ 文本的开始
$ 文本的结尾
[[:<:]] 词的开始
[[:>:]] 词的结尾
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘^[0-9\\.]‘
ORDER BY prod_name;

最后

主要是匹配字符串,使用LIKE和REGEXP,通配符和正则表达式。不知道第几次看正则表达式的内容了,这次看清晰了很多,也感觉它没有以前想象得这么难了。多看多学吧,加油!

TO BE CONTINUED...
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!