正则表达式规则表

我们可以利用RELIKE或REGEXP运算符在WHERE子句中使用正则表达式。使用REGEXP(见下表)。 Mysql官网REGEXP示例地址

表达式 描述
* 零次或多次重复
+ 一个或多个重复
? 可选字符
. 任何字符
\. 区间
^ 以……开始
$ 以……结束
[abc] 只有a b c
[^abd] 非a、非b、非c
[a-z] 字符a到z
[0-9] 数字0到9
^…$ 开始和结束
\d 任何数字
\D 任何非数字字符
\s 任何空格
\S 任何非空白字符
\w 任何字母数字字符
\W 任何非字母数字字符
{m} m次重复
{m,n} m到n次重复

Mysql中的正则表达式的使用例子(mysql8 cookbook)

  • 找出名名字以 Chirst 开头的所有员工的人数

    1. SELECT COUNT(*) FROM `employees` WHERE first_name RLIKE '^christ';
    2. SELECT COUNT(*) FROM `employees` WHERE first_name REGEXP '^christ';
    3. SELECT COUNT(*) FROM `employees` WHERE first_name LIKE 'christ%';
  • 找出姓氏以ba结尾的所有员工的人数。

    SELECT COUNT(*) FROM `employees` WHERE last_name = 'ba$';
    SELECT COUNT(*) FROM `employees` WHERE last_name REGEXP 'ba$';
    SELECT COUNT(*) FROM `employees` WHERE last_name LIKE '%ba';
    
  • 查找姓氏不包含元音字母(a、e、i、o、u)的所有员工的人数

    SELECT COUNT(*) FROM `employees` WHERE last_name NOT REGEXP '[aeiou]';
    SELECT COUNT(*) FROM `employees` WHERE last_name NOT RLIKE '[aeiou]';