美文网首页
Mysql第九章 - 用通配符进行过滤

Mysql第九章 - 用通配符进行过滤

作者: 足__迹 | 来源:发表于2024-04-17 18:30 被阅读0次
    正则表达式:

    正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较

    介绍:

    MySQL用WHERE子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤SELECT检索出的数据。(仅支持正则表达式的一个子集)

    基本字符匹配

    举例:
    输入
    SELECT * FROM spu ws WHERE code REGEXP '1000'
    输出


    image.png

    分析:除关键字LIKE被REGEXP替代外,这条语句看上去非常像使用LIKE的语句。它告诉MySQL:REGEXP后所跟的东西作为正则表达式(与文字正文1000匹配的一个正则表达式)处理

    LIKE和REGEXP之间有一个重要的差别

    LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。这是一个非常重要的差别。

    正则表达式 OR匹配 “|”

    输入
    SELECT * FROM spu ws WHERE code REGEXP '1000|2000'
    分析:
    语句中使用了正则表达式1000|2000。|为正则表达式的OR操作符。它表示匹配其中之一,因此1000和2000都匹配并返回。

    正则表达式 匹配限制范围【EDF】三个字符之一

    输入:
    SELECT * FROM ware_spu ws WHERE ware_code REGEXP '[FDH]000'
    分析:
    使用了正则表达式'[FDH]000',[FDH]定义了一组字符,它的意思是匹配F或D或H
    []是另一种形式的OR语句,正则表达式'[FDH],是正则表达式'[F|D|H]的缩写

    匹配范围

    集合可用来定义要匹配的一个或多个字符。例如,下面的集合将匹配数字0到9【0123456789】
    为简化这种类型,可用于 - 来定义一个范围。
    【0-9】
    范围不限于完整的集合,【1-3】和【6-9】也是合法的范围。【a-z】匹配任意字母字符
    输入
    SELECT * FROM ware_spu ws WHERE ware_code REGEXP '[A-Z]000'
    分析
    使用[A-Z] 匹配匹配任意字母字符开头000,

    相关文章

      网友评论

          本文标题:Mysql第九章 - 用通配符进行过滤

          本文链接:https://www.haomeiwen.com/subject/xpxexjtx.html