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
    
  • 相关阅读:
    ubuntu下php-fpm多实例运行配置
    ubuntu下nginx+PHP-FPM安装配置
    php中include_path配置
    laravel中的队列
    laravel权限控制Gate
    Configuring an NVIDIA Jetson TX2
    NVIDIA Jetson TX2 の設定
    3-Jetson Nano Developer KitでAWS IoT GreengrassのML Inferenceを試す(GPU編)
    2-Jetson Nano Developer KitでAWS IoT GreengrassのML Inferenceを試す
    1-Jetson Nano Developer KitでAWS IoT Greengrassを動かしてみる
  • 原文地址:https://www.cnblogs.com/zuotongbin/p/11814144.html
Copyright © 2011-2022 走看看