MySQL 中的 RLIKE 运算符

RLIKE 简介

我们在 MySQL 中进行字符串匹配时,经常会用到 RLIKE 运算符。它的主要作用是根据特定的模式来执行字符串表达式的匹配。简单来说,它就是我们用来进行正则表达式搜索的强大工具。

语法

RLIKE pattern

参数说明

在使用这个方法时,我们需要关注一个核心参数,也就是语法中提到的 pattern。

  • pattern(模式):这是我们希望表达式能够匹配上的特定模式。关于各种模式的写法及其具体用法,我们会在下文中详细探讨。

常用模式匹配表

为了让大家更直观地理解,我们整理了一个常用的模式对照表:

Pattern

模式匹配说明

*

匹配前面字符串出现 0 次或多次的情况

+

匹配前面字符串出现 1 次或多次的情况

.

匹配任意单个字符

?

匹配前面字符串出现 0 次或 1 次

^

匹配字符串的开始位置

$

匹配字符串的结束位置

[abc]

匹配方括号内列出的任意一个字符

[^abc]

匹配方括号内未列出的任意一个字符

[A-Z]

匹配任意一个大写字母

[a-z]

匹配任意一个小写字母

[0-9]

匹配 0 到 9 之间的任意数字

[[:<:]]

匹配单词的开始位置

[[:>:]]

匹配单词的结束位置

[:class:]

匹配字符类,例如 [:alpha:] 匹配字母,[:space:] 匹配空白字符,[:punct:] 匹配标点符号,[:upper:] 匹配大写字母

p1\

p2\

p3

选择(Alternation);匹配 p1、p2 或 p3 中的任意一个模式

{n}

匹配前面的元素恰好 n 次

{m,n}

匹配前面的元素至少 m 次,至多 n 次## 实例演示

示例 1

在这个例子中,我们将尝试查找所有姓氏(Last name)以字母 "S" 开头的员工。让我们先构建一个员工表。

CREATE TABLE Employee
(
Employee_id INT AUTO_INCREMENT,  
First_name VARCHAR(100) NOT NULL,
Last_name VARCHAR(100) NOT NULL,
Joining_Date DATE NOT NULL,
PRIMARY KEY(Employee_id )
);

#### 向 Employee 表中插入数据

INSERT INTO Employee
(First_name ,Last_name , Joining_Date )
VALUES
(‘Sayantan‘, ‘Majumdar‘, ‘2000-01-11‘),
(‘Anushka‘, ‘Samanta‘, ‘2002-11-10‘ ),
(‘Sayan‘, ‘Sharma‘, ‘2005-06-11‘ ),
(‘Shayari‘, ‘Das‘, ‘2008-01-21‘ ),
(‘Sayani‘, ‘Jain‘, ‘2008-02-01‘ ),
(‘Tapan‘, ‘Samanta‘, ‘2010-01-11‘ ),
(‘Deepak‘, ‘Sharma‘, ‘2014-12-01‘  ),
(‘Ankana‘, ‘Jana‘, ‘2018-08-17‘),
(‘Shreya‘, ‘Ghosh‘, ‘2020-09-10‘) ;

现在,我们的 Employee 表内容如下。

select * from Employee ;

输出结果:

Employeeid

Firstname

Lastname

JoiningDate

1

Sayantan

Majumdar

2000-01-11

2

Anushka

Samanta

2002-11-10

3

Sayan

Sharma

2005-06-11

4

Shayari

Das

2008-01-21

5

Sayani

Jain

2008-02-01

6

Tapan

Samanta

2010-01-11

7

Deepak

Sharma

2014-12-01

8

Ankana

Jana

2018-08-17

9

Shreya

Ghosh

2020-09-10接下来,我们要筛选出那些姓氏以 ‘S‘ 开头的员工。

SELECT * FROM Employee   
WHERE Last_name RLIKE ‘^S‘ ;

输出结果:

Employeeid

Firstname

Lastname

JoiningDate

2

Anushka

Samanta

2002-11-10

3

Sayan

Sharma

2005-06-11

6

Tapan

Samanta

2010-01-11

7

Deepak

Sharma

2014-12-01### 示例 2

在第二个例子中,我们将查找所有名字以字母 ‘i‘ 结尾的员工。

SELECT * FROM Employee   
WHERE First_name RLIKE ‘i$‘ ;

输出结果:

Employeeid

Firstname

Lastname

JoiningDate

4

Shayari

Das

2008-01-21

5

Sayani

Jain

2008-02-01

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/52968.html
点赞
0.00 平均评分 (0% 分数) - 0