MySQL正则查询

avatar
作者
筋斗云
阅读量:0

模式 描述

^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^ 也匹配’\n’ 或’\r’ 之后的位置。

$ 匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$ 也匹配’\n’ 或’\r’ 之前的位置。

. 匹配除"\n" 之外的任何单个字符。要匹配包括’\n’ 在内的任何字符,请使用象’[.\n]’ 的模式。

[…] 字符集合。匹配所包含的任意一个字符。例如,’[abc]’ 可以匹配"plain" 中的’a’。

[^…] 负值字符集合。匹配未包含的任意字符。例如,’[^abc]’ 可以匹配"plain" 中的’p’。

p1|p2|p3 匹配p1 或p2 或p3。例如,’z|food’ 能匹配"z" 或"food"。’(z|f)ood’ 则匹配"zood" 或"food"。

  •        匹配前面的子表达式零次或多次。例如,zo* 能匹配"z" 以及"zoo"。* 等价于{0,}。  
  •        匹配前面的子表达式一次或多次。例如,’zo+’ 能匹配"zo" 以及"zoo",但不能匹配"z"。+ 等价于{1,}。  

{n} n是一个非负整数。匹配确定的n 次。例如,’o{2}’ 不能匹配"Bob" 中的’o’,但是能匹配"food" 中的两个o。

{n,m} m和n 均为非负整数,其中n <=m。最少匹配n 次且最多匹配m 次。

实例

–查找name字段中以’st’为开头的所有数据:

mysql> SELECT name FROM test  WHEREname REGEXP ‘^st’;  

–查找name字段中以’ok’为结尾的所有数据:

mysql> SELECT name FROM test  WHEREname REGEXP ‘ok$’;  

–查找name字段中包含’mar’字符串的所有数据:

mysql> SELECT name FROM test  WHEREname REGEXP ‘mar’;  

–查找name字段中以数字开头字符串结尾的所有数据:

mysql> SELECT name FROM test  WHEREname REGEXP ‘^[0-9];  

–查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据:

mysql> SELECT name FROM test WHEREname REGEXP ‘^[aeiou]|ok$’;  

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!