热线电话:13121318867

登录
2023-06-20 阅读量: 457
CDA数据分析学习之MySQL中的正则表达式 01 基本字符的匹配

MySQL中的正则表达式

正则表达式的作用是匹配文本,将一个模式(pattern,也即正则表达式)与一个文本串(text)比较,如果text中含有此pattern,则返回1,否则返回0。

可利用此性质在where子句中使用正则表达式获得相应的匹配数据行。

用法: REGEXP '正则表达式',表示利用正则表达式进行匹配。

1. 基本字符的匹配

SELECT col_name 
FROM tbl_name
WHERE col_name REGEXP '1000'

分析:上述语句中的REGEXP '1000'表示匹配正则表达式1000,如果相应列值内容中含有1000子串,则返回此数据记录。

SELECT col_name
FROM tbl_name
WHERE col_name REGEXP '.000'

分析:上述语句中的REGEXP '.000'表示匹配正则表达式.000,其中的.表示匹配任意一个字符,所以如果相应列值内容中含有*000子串(星号代表任意字符),则返回此数据记录。

LIKE和 REGEXP 重要区别:

  • LIKE匹配整个串。如果被匹配的文本在列值中出现,LIKE不会找到它,相应的行也不会被返回。即如果LIKE后的匹配串中如果不带有通配符( *,% 或 _ ),则不会返回任何结果。

  • REGEXP匹配子串。如果被匹配的文本在列值中出现,REGEXP会找到它并将相应的行返回。

现在假如数据库中有表mytable,表中有id号为1000的数据记录,则下列代码会有不同的返回结果:

## 无返回结果
SELECT *
FROM mytable
WHERE id LIKE '1000';

##有返回id为1000的数据行
SELECT *
FROM mytable
WHERE id REGEXP '1000';

注意:正则表达式默认匹配不区分大小写,若要区分大小写,用法为REGEXP BINARY '正则表达式',即在关键字REGEXP后添加BINARY关键字。


0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子
0条评论