MySQL RLIKE操作符

MySQL RLIKE操作符

MySQL中的RLIKE操作符用于模式匹配。它用于确定给定的字符串是否与正则表达式匹配。 如果字符串与正则表达式匹配,则返回1;如果没有找到匹配项,则返回0。 此操作符的结果与 REGEXP_LIKE() 函数相似。因此,RLIKE操作符是REGEXP_LIKE()函数的同义词。

语法

以下是在MySQL中使用此操作符的基本语法:

expression RLIKE pattern

在这个语法中, expression 是一个输入字符串,我们将对其进行正则表达式匹配搜索。而 pattern 则表示我们正在测试的字符串的正则表达式。

这个语法通常与SELECT语句一起使用,如下所示:

SELECT column_list FROM table_name WHERE column_name RLIKE 'pattern';  

让我们通过例子来了解这个操作符在MySQL中的工作原理。

例子

下面的语句是RLIKE操作符的最基本示例。在这里,我们只使用了一个字符串,并比较输入字符串的任何部分是否与模式匹配以得到结果。

mysql> SELECT 'Javatpoint' RLIKE '^Java' AS 'Result';

这里是结果:

MySQL RLIKE操作符

假设我们有一个名为 student_info 的表,其中包含以下数据。我们将根据这个表的数据进行各种示例演示。

MySQL RLIKE操作符

如果我们想获得科目以字母”s”或”y”结尾的学生的姓名、科目和分数,我们可以使用以下语句来获取这些详细信息:

mysql> SELECT stud_name, subject, marks
FROM student_info 
WHERE subject RLIKE 's|y';

执行该语句,我们将得到期望的结果。请查看下方输出:

MySQL RLIKE操作符

下面的陈述是另一个例子,我们在其中使用了正则表达式字符 点(.) ,表示在此处可以没有字符、一个字符或多个字符:

mysql> SELECT stud_name, subject, marks
FROM student_info 
WHERE subject RLIKE 'sci.nce';

执行该语句,我们将获得期望的结果。请参阅下面的输出:

MySQL RLIKE操作符

MySQL NOT RLIKE运算符

它是RLIKE运算符的否定形式,用于模式匹配。该运算符用于确定输入字符串中是否不存在某个模式。如果字符串不匹配正则表达式,则返回0,如果匹配成功,则返回1。我们可以按照以下方式使用该运算符:

expression NOT RLIKE pattern

以上运算符等价于以下语法:

NOT (expression RLIKE pattern) 

在这个语法中, expression 是一个输入字符串,我们将对其进行搜索以匹配正则表达式。而 pattern 表示我们正在测试字符串的正则表达式。

这个语法通常与 SELECT 语句一起使用,如下所示:

SELECT column_list FROM table_name WHERE column_name NOT RLIKE 'pattern';  

让我们通过示例来了解MySQL中的这个运算符的工作原理。

示例

以下语句是NOT RLIKE运算符的最基本示例。在这里,我们只是使用了一个字符串,并比较输入字符串的任何部分是否不匹配模式。

mysql> SELECT 'Javatpoint' NOT RLIKE '^Java' AS 'Result';

我们将得到以下结果。 这里模式匹配成功,因为输入字符串以Java开头。 由于我们使用的是NOT RLIKE运算符,它返回负结果(0)。

上述语句的等效操作如下:

mysql> SELECT NOT ('Javatpoint' RLIKE '^Java') AS 'Result';

MySQL RLIKE操作符

这是另一个示例,给出了结果1。它表示字符串与给定的模式不匹配。

mysql> SELECT 
  'Javatpoint' RLIKE '^C | e' AS 'RLIKE',
  'Javatpoint' NOT RLIKE '^C | e' AS 'NOT RLIKE';

这是输出结果:

MySQL RLIKE操作符

让我们根据上面的学生信息表看一些其他例子 .

下面的语句返回 不以“s”或“y”字母结尾的学生的姓名、科目和分数 :

mysql> SELECT stud_name, subject, marks
FROM student_info 
WHERE subject NOT RLIKE 's|y';

执行该语句,我们将得到所期望的结果。请看下面的输出:

MySQL RLIKE操作符

下面的语句返回 不包含四个字符的学生姓名的详细信息

mysql> SELECT * FROM student_info 
WHERE stud_name NOT RLIKE '^.{4}$';

这里使用了 ‘^’ 和 ‘$’ 元字符 它们匹配学生姓名的 开始结尾 ,中间有 {4} 次重复的任意字符 ‘.’。请参见下面的输出:

MySQL RLIKE操作符

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程