博客
关于我
MySQL学习笔记.查询数据3
阅读量:517 次
发布时间:2019-03-07

本文共 4700 字,大约阅读时间需要 15 分钟。

正则表达式查询

查询特定字符或字符串开头的记录

字符‘^’匹配以特定字符或字符串开头的文本

1.查询以x开头的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP '^x';+------+------+---------+---------+| f_id | s_id | f_name  | f_price |+------+------+---------+---------+| b5   |  107 | xxxx    |    3.60 || m2   |  105 | xbabay  |    2.60 || t4   |  107 | xbababa |    3.60 |+------+------+---------+---------+3 rows in set (0.00 sec)

2查询以xx开头的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP '^xx';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| b5   |  107 | xxxx   |    3.60 |+------+------+--------+---------+1 row in set (0.00 sec)

查询特定字符或字符串结尾的记录

字符$匹配以特定字符或字符串结尾的文本

1.查询以e结尾的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP 'e$';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| a1   |  101 | apple  |    5.20 || bs1  |  102 | orange |   11.20 || t2   |  102 | grape  |    5.30 |+------+------+--------+---------+3 rows in set (0.00 sec)

2.查询以go结尾的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP 'go$';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| m1   |  106 | mngo   |   15.70 |+------+------+--------+---------+1 row in set (0.00 sec)

用符号.来代替字符串中任一字符

字符.匹配任意一个字符

1.查询包含r某y的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP 'r.y';+------+------+------------+---------+| f_id | s_id | f_name     | f_price |+------+------+------------+---------+| b1   |  101 | blackberry |   10.20 || b2   |  104 | berry      |    7.60 || c0   |  101 | cherry     |    3.20 |+------+------+------------+---------+3 rows in set (0.00 sec)

用符号“*”和“+”来匹配多个字符

“*”可匹配前面多个字符,“+”至少匹配前面字符一次

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP '^mn*';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| bs2  |  105 | melon  |    8.20 || m1   |  106 | mngo   |   15.70 |+------+------+--------+---------+2 rows in set (0.00 sec)
mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP '^mn+';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| m1   |  106 | mngo   |   15.70 |+------+------+--------+---------+1 row in set (0.00 sec)

匹配指定字符串

正则表达式可以匹配指定的字符串,只要这个字符串在查询文本中即可,如果要匹配多个字符串,多个字符串之间使用分隔符"|"隔开

1.查询包含字符串“ge”的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP 'ge';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| bs1  |  102 | orange |   11.20 |+------+------+--------+---------+1 row in set (0.00 sec)

2.查询包含“ge”或者"na"的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP 'ge|na';+------+------+--------+---------+| f_id | s_id | f_name | f_price |+------+------+--------+---------+| bs1  |  102 | orange |   11.20 || t1   |  102 | banana |   10.30 |+------+------+--------+---------+2 rows in set (0.00 sec)

匹配指定字符中的任意一个

方括号“[]”指定一个字符集合,只匹配其中任何一个字符。

1.查询包含字母“a”或者"e"的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP '[ae]';+------+------+------------+---------+| f_id | s_id | f_name     | f_price |+------+------+------------+---------+| a1   |  101 | apple      |    5.20 || a2   |  103 | apricot    |    2.20 || b1   |  101 | blackberry |   10.20 || b2   |  104 | berry      |    7.60 || bs1  |  102 | orange     |   11.20 || bs2  |  105 | melon      |    8.20 || c0   |  101 | cherry     |    3.20 || m2   |  105 | xbabay     |    2.60 || t1   |  102 | banana     |   10.30 || t2   |  102 | grape      |    5.30 || t4   |  107 | xbababa    |    3.60 |+------+------+------------+---------+11 rows in set (0.00 sec)

使用{n,}或者{n,m}来指定字符串出现的次数

查询至少连续出现2次r的记录

mysql> SELECT *    -> FROM fruits    -> WHERE f_name REGEXP 'r{2,}';+------+------+------------+---------+| f_id | s_id | f_name     | f_price |+------+------+------------+---------+| b1   |  101 | blackberry |   10.20 || b2   |  104 | berry      |    7.60 || c0   |  101 | cherry     |    3.20 |+------+------+------------+---------+3 rows in set (0.00 sec)

匹配指定字符以外的字符

“[^字符集合]”匹配不在指定集合中的任何字符

匹配非101-104的记录

mysql> SELECT *    -> FROM fruits    -> WHERE s_id REGEXP '[^101-104]';+------+------+---------+---------+| f_id | s_id | f_name  | f_price |+------+------+---------+---------+| a2   |  103 | apricot |    2.20 || b5   |  107 | xxxx    |    3.60 || bs1  |  102 | orange  |   11.20 || bs2  |  105 | melon   |    8.20 || m1   |  106 | mngo    |   15.70 || m2   |  105 | xbabay  |    2.60 || t1   |  102 | banana  |   10.30 || t2   |  102 | grape   |    5.30 || t4   |  107 | xbababa |    3.60 |+------+------+---------+---------+9 rows in set (0.00 sec)

转载地址:http://kzfnz.baihongyu.com/

你可能感兴趣的文章
mabatis 中出现< 以及> 代表什么意思?
查看>>
Mac book pro打开docker出现The data couldn’t be read because it is missing
查看>>
MAC M1大数据0-1成神篇-25 hadoop高可用搭建
查看>>
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MariaDB的简单使用
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>