MySQL REGEXP运算符

MySQL 中的 REGEXP 运算符用于模式匹配。它比较输入字符串中的给定模式并返回与模式匹配的结果。如果此运算符找到匹配项,则结果为 1。否则,结果为 0。此运算符的工作方式与REGEXP_LIKE()函数相同。

一、MySQL REGEXP运算符 语法

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

expression REGEXP pattern ;  

在这种语法中,表达式是一个输入字符串,我们将在其上执行搜索以匹配正则表达式。而模式表示我们正在测试字符串的正则表达式。此语法通常与SELECT 语句一起使用。

让我们通过示例了解这个运算符在MySQL中是如何工作的。

二、MySQL REGEXP运算符 示例

下面的语句是最基本的正则表达式,我们没有使用任何特殊字符。这意味着我们刚刚使用了一个字符串并比较了输入字符串的任何部分是否与模式匹配,它返回一个匹配项。

mysql> SELECT   
  'Corner' REGEXP 'Corn' AS 'Match',  
  'Cheese' REGEXP 'Corn' AS 'Not-Match';  

结果如下:

假设我们有一个名为employee的表,其中包含以下数据。现在,我们将根据此表数据演示各种示例。

如果我们要搜索姓名以 j 或 s 开头的员工,我们可以这样做:

mysql> SELECT * FROM employee WHERE Name REGEXP '^[js]';  

执行语句,我们会得到想要的结果。请参阅以下输出:

如果我们想获取名字正好包含四个字符的员工,我们需要使用'^' 和 '$ 元字符。这些字符匹配员工姓名的开头和结尾,并重复 {4} 次任意字符 '.' 如以下语句所示:

mysql> SELECT * FROM employee WHERE Name REGEXP '^.{4}$';  

如果我们想获取指定包含 'er' 字符的员工详细信息,我们可以使用以下SQL来做到这一点:

mysql> SELECT * FROM employee WHERE Designation REGEXP 'er';  

执行语句,我们会得到想要的结果。请参阅以下输出:

如果我们想获取名称包含 p 或 s 字符的员工姓名和职务,我们可以使用以下查询来做到这一点:

mysql> SELECT Name, Designation FROM employee WHERE Name REGEXP 'p|s';  

执行语句,我们会得到想要的结果。请参阅以下输出:

热门文章

优秀文章