美文网首页程序员
MySQL 模式匹配

MySQL 模式匹配

作者: TinyDolphin | 来源:发表于2018-01-26 15:32 被阅读0次

MySQL 模式匹配

LIKE模式

利用 LIKE 运算符以及通配符 "%"(能匹配任意字符序列)和 "_"(只能匹配单个字符)实现的。

  • 通配符"%"能匹配任何字符串,包括空字符串,但是不能匹配 NULL
  • 如果 LIKE 的一边为二进制串,则两边都当成二进制串比较,如果都不是二进制串,则根据它们的排序规则来进行比较

正则表达式 REGEXP

利用 REGEXP 运算符正则表达式实现的。

  • 点号字符 "." 可以匹配任何单个字符,如:
    • 'abc' REGEXP 'a.c'
  • 方括号 "[...]" 可以匹配列在方括号内部的任何字符,如:
    • 'e' REGEXP '[aeiou]'
  • 连接符 "-" 可用于指定字符范围,其两端分别为范围的起始结束字符"^" 用于把这个字符范围的含义变反(匹配未列在其中的字符),如:
    • 'abc' REGEXP '[a-z]'
    • 'abc' REGEXP '[^d-z]'
  • "*" 表示匹配前面的子表达式零次或多次,如:
    • 'abcdef' REGEXP 'a.*f'
    • 'xxxxx' REGEXP 'x*'
    • 'abc' REGEXP '[0-9]*abc' 因为任意个包括 0 个
  • 如果要匹配前面的子表达式一次或多次,则需要使用 "+" 来代替 "*",如:
    • 'abc' REGEXP 'cd*' -- 可以匹配零次
    • 'abc' REGEXP 'cd+' 错误 -- 不可以匹配零次,至少匹配一次
    • 'abcd' REGEXP 'cd+'
  • "^pattern" & "pattern$" 模式,当 pattern 出现在字符串的开头结尾时,匹配成功,而 "^pattern$" 只有匹配整个 pattern 才能匹配成功,如:
    • 'abc' REGEXP 'b'
    • 'abc' REGEXP '^abc$'
    • 'abc' REGEXP '^a'
    • 'abc' REGEXP 'bc$'

两者之间差异

除了使用运算符不同之外,两个重要的差异:

  • SQL 的 LIKE 模式只用于匹配整个字符串;正则表达式 REGEXP 可以匹配字符串的任何部分
  • LIKE 运算符是多字节安全的。REGEXP 运算符只能正确地处理单字节字符集,并不会考虑排序规则

相关文章

  • MySQL 模式匹配

    MySQL 模式匹配 LIKE模式 利用 LIKE 运算符以及通配符 "%"(能匹配任意字符序列)和 "_"(只能...

  • 树莓派——mysql的学习(3)

    由MySQL提供的模式匹配的其它类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT ...

  • mysql(04day)

    Mysql支持正则表达式的匹配,Mysql中使用REGEXP操作符来进行正则表达式匹配。 下面中的正则模式中可用于...

  • 3.5 模式匹配(模糊查询与简单正规则匹配)

    MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配...

  • 模式匹配

    模式匹配之字符串 模式匹配之匹配类型 模式匹配之匹配数组、元组、集合 模式匹配之样例类 模式匹配之偏函数

  • MySQL 正则表达式

    MySQL中使用 REGEXP 操作符来进行正则表达式匹配。 1、正则模式描述 ^:匹配输入字符串的开始位置。如果...

  • 多模式串匹配 - AC 自动机

    多模式串匹配概念 多模式串匹配,即多个模式串在一个主串中进行匹配。 虽然单模式串也能完成多模式串的匹配,但每个模式...

  • Scala模式匹配

    模式匹配match 模式匹配不仅可以匹配值(case 1)还可以匹配类型(case s:String) 匹配过程有...

  • 正则表达式懒惰型元字符匹配 ?

    懒惰匹配模式即表示以最少的匹配量返回匹配个数,默认是非懒惰匹配模式 表达式 匹配结果:

  • MySql正则匹配结果

    正则表达式基本语法: MySql中正则模式使用REGEXP和NOT REGEXP操作符。 基本的正则匹配规则: 1...

网友评论

    本文标题:MySQL 模式匹配

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