mysql正则通配符全解_MySQL必知必会---通配符与正则表达式

like操作符

为在搜索子句中使用通配符,必须使用like操作符。

注意:操作符何时不是操作符?答案是它在作为谓词时。

百分号(%)通配符

%表示任何字符出现任意次数。

MariaDB [test]> select id,age,province

-> from user

-> where province like ‘天%‘

-> ;

+----+------+----------+

| id | age | province |

+----+------+----------+

| 3 | 56 | 天津 |

| 9 | 33 | 天津 |

+----+------+----------+

2 rows in set (0.00 sec)

下划线(_)通配符

下划线_,只匹配单个字符而不是多个字符。

使用通配符的技巧:

1.不要过度使用通配符

2.在确实需要使用通配符时,不要用在搜索模式的开始处。影响效率

3.仔细注意通配符的位置

使用mysql 正则表达式

MariaDB [test]> select id,age,province

-> from user

-> where age regexp ‘2‘

-> ;

+----+------+----------+

| id | age | province |

+----+------+----------+

| 1 | 22 | 北京 |

| 2 | 25 | 广东 |

| 10 | 27 | 湖南 |

| 11 | 29 | 北京 |

| 13 | 24 | 北京 |

+----+------+----------+

5 rows in set (0.00 sec)

5.进行OR匹配

MariaDB [test]> select id,age,province

-> from user

-> where age regexp ‘22|27‘;

+----+------+----------+

| id | age | province |

+----+------+----------+

| 1 | 22 | 北京 |

| 10 | 27 | 湖南 |

+----+------+----------+

2 rows in set (0.03 sec)

6.匹配几个字符之一

MariaDB [test]> select id,age,province

-> from user

-> where age regexp ‘[123]7‘;

+----+------+----------+

| id | age | province |

+----+------+----------+

| 8 | 17 | 河北 |

| 10 | 27 | 湖南 |

+----+------+----------+

2 rows in set (0.00 sec)

7.匹配范围

MariaDB [test]> select id,age,province

-> from user

-> where age regexp ‘[1-3]7‘;

+----+------+----------+

| id | age | province |

+----+------+----------+

| 8 | 17 | 河北 |

| 10 | 27 | 湖南 |

+----+------+----------+

2 rows in set (0.00 sec)

8.匹配特殊字符

注意:特殊字符处理时需进行转义 escaping

\f 换页

\n 换行

\r 回车

\t 制表

\v 纵向制表

匹配(\)为了匹配反斜杠字符本身,需要使用\

9.匹配字符类

[:alnum:] 任意字母和数字

[:alpha:] 任意字符

[:blank:] 空格和制表

[:cntrl:] ASCII 控制字符

[:digit:] 任意数字

[:graph:] 与[:print:]相同,但不包括空格

[:lower:] 任意小写字母

[:print:] 任意可打印字符

[:punct:] 既不在[:alnum:] 又不在 [:cntrl:] 中的任意字符

[:space:] 包括空格在内的任意空白字符

[:upper:] 任意大写字母

[:xdigit:] 任意十六进制数字

10.匹配多个实例

0个或多个匹配

1个或多个匹配

? 0个或一个匹配

{n} 指定数目的匹配

{n,} 不少于指定数目的匹配

{n,m} 范围匹配

11.定位符

^ 文本开始

$ 文本末尾

[[:<:>

[[:>:]] 词的结尾

原文:http://blog.51cto.com/imork/2119195

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值