MySQL REGEXP运算符

MySQL REGEXP运算符

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

语法

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

expression REGEXP pattern ;

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

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

例子

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

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

这是结果:

MySQL REGEXP运算符

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

MySQL REGEXP运算符

如果我们想要 按名字以j或s开头搜索员工 ,我们可以按如下方法操作:

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

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

MySQL REGEXP运算符

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

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

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

MySQL REGEXP运算符

如果我们想要获取职称中包含’er’字符的员工详细信息,我们可以使用以下查询:

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

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

MySQL REGEXP运算符

如果我们想要获取 员工的姓名和职务,姓名包含p或s字母 ,我们可以使用以下查询语句:

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

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

MySQL REGEXP运算符

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程