博客
关于我
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/

你可能感兴趣的文章
Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
查看>>
Node-RED中建立TCP服务端和客户端
查看>>
Node-RED中建立Websocket客户端连接
查看>>
Node-RED中建立静态网页和动态网页内容
查看>>
Vue3+Element-ul学生管理系统(第二十二课)
查看>>
Node-RED中怎样让网站返回JSON数据
查看>>
Node-RED中根据HTML文件建立Web网站
查看>>
Node-RED中解析高德地图天气api的json数据显示天气仪表盘
查看>>
Node-RED中连接Mysql数据库并实现增删改查的操作
查看>>
Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
查看>>
Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
查看>>
Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
查看>>
Node-RED怎样导出导入流程为json文件
查看>>
Node-RED简介与Windows上安装、启动和运行示例
查看>>
Node-RED订阅MQTT主题并调试数据
查看>>
Node-RED通过npm安装的方式对应卸载
查看>>
node-request模块
查看>>
node-static 任意文件读取漏洞复现(CVE-2023-26111)
查看>>
Node.js 8 中的 util.promisify的详解
查看>>
node.js debug在webstrom工具
查看>>