MySQL 正则表达式

  • 正则表达式

    您已经看到与LIKE...%匹配的MySQL模式。MySQL支持基于正则表达式和REGEXP运算符的另一种模式匹配操作。如果您了解PHPPERL,那么对您来说很简单,因为这种匹配与对正则表达式进行脚本编写的方式相同。以下是模式表,可以与REGEXP运算符一起使用。
    正则字符 描述
    ^ 字符串开头
    $ 字符串结尾
    任何单个字符
    [...] 方括号之间列出的任何字符
    [^ ...] 方括号之间未列出的任何字符
    p1 | p2 | p3 匹配任何模式p1,p2或p3
    * 零个或多个前一元素的实例
    + 前一个元素的一个或多个实例
    {n} 前一个元素的n个实例
    {m,n} m至n个先前元素的实例
  • 例子

    现在,基于上表,您可以配置各种类型的SQL查询以满足您的要求。在这里,我列出一些供您理解。考虑我们有一个名为person_tbl的表,它有一个名为name的字段
    查询以'st'开头的所有名称
    mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
    查询以找到所有以'ok'结尾的名称-
    mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok
    
    查询以查找所有包含“mar”的名称-
    mysql> SELECT name FROM person_tbl WHERE name REGEXP 'mar';
    查询以找到所有以元音字母开头并以'ok'结尾的名称
    mysql> SELECT FirstName FROM intque.person_tbl WHERE FirstName REGEXP '^[aeiou].*ok
    
;
查询以查找所有包含“mar”的名称-

                      
查询以找到所有以元音字母开头并以'ok'结尾的名称

                      
; ;
查询以查找所有包含“mar”的名称-

                      
查询以找到所有以元音字母开头并以'ok'结尾的名称