zoukankan      html  css  js  c++  java
  • 《MySQL必知必会》第九章:用正则表达式进行搜索

    @author: Tobin
    @date: 2019/10/28 19:51:40

    MySQL仅支持多数正则表达式实现的一个很小的子集。

    # 检索列prod_name包含文本1000的所有行
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '1000'
    ORDER BY prod_name;
    # 这里注意和LIKE的差别。LIKE匹配'1000'是全匹配。必须等于1000才返回值。而REGEXP是只要包含1000就可以。
    
    # 匹配任意一个字符
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '.000'
    ORDER BY prod_name;
    
    # MySQL中的正则表达式匹配,自版本3.32.4后不区分大小写。大写和小写都匹配。为区分大小写,可以使用BINARY关键字。
    # 如 WHERE prod_name REGEXP BINARY 'JetPack .000'
    
    # 进行OR匹配,使用'|'
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '1000|2000'
    ORDER BY prod_name;
    
    # 匹配几个字符之一
    # 相当于另一种形式的|,'[1|2|3] Ton'加括号,否则匹配1,2,3 Ton中的一个
    # [^123]表示不匹配其中的任意一个字符
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '[123] Ton'
    ORDER BY prod_name;
    
    # 匹配多个字符或者数字的简便写法
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '[1-5] Ton'
    ORDER BY prod_name;
    
    # 转义\
    # \f 换页 \n 换行 \r 回车 \t 制表 \v 纵向制表 \匹配反斜杠本身
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '\.'
    ORDER BY prod_name;
    
    # 匹配字符类
    # 举例。比如[:alnum:] 任意字符和数字,[:alpha:]任意字符
    
    # 匹配多个实例
    # * 0个或者多个匹配
    # + 1个或者多个匹配
    # ? 0个或者1个匹配
    # {n} 指定数目的匹配
    # {n,} 不少于指定数目的匹配
    # {n,m} 匹配数目的范围 (m不超过255)
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '\([0-9] sticks?\)'
    ORDER BY prod_name;
    
    # 匹配连在一起的任意4位数字
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '[[:digit:]]{4}'
    ORDER BY prod_name;
    
    # 定位符
    # ^ 文本的开始 $ 文本的结尾 [[:<:]] 词的开始 [[:>:]]词的结尾
    SELECT prod_name
    FROM products
    WHERE prod_name REGEXP '^[0-9\.]'
    ORDER BY prod_name;
    # ^在括号内是否定该集合,在外面就是定位符
    # 用^开头,$结尾可以使得REGEXP等价于LIKE
    
  • 相关阅读:
    规范的html页面
    什么是MVC (模型 视图 控制器)?
    MVC概念
    MVC实用集锦(1)
    三层架构与MVC的区别
    spring-data-jpa的简单介绍
    Spring和SpringMVC的区别
    Spring常用注解汇总
    jmeter---CSV文件设置操作
    Linux----软件包管理
  • 原文地址:https://www.cnblogs.com/zuotongbin/p/11814144.html
Copyright © 2011-2022 走看看