• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql中用正则表达式进行搜索教程(一)

mysql中用正则表达式进行搜索教程(一)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了正则表达式,搜索等相关知识,希望本文的分享对您有所帮助
本文专题将学习如何在MySQL where子句内使用正则表达式来跟好的控制数据过滤。

有关正则表达式介绍

前两章中的过滤例子允许用匹配、比较和通配操作符寻找数据。对于基本的过滤(或者甚至是某些不那么基本的过滤),这样就足够了。但随着过滤条件的复杂性的增加,where子句本身的复杂性也有不要增加。

这也就是正则表达式变得有用的地方。正则表达式是用来匹配文本的特殊的串(字符集合)。如果你想从一个文本文件中提取出电话号码,可以使用正则表达式。如果你需要查找名字中间有数字的所有文件,可以使用一个正则表达式。如果你想在一个文板块中找到所有重复的单词,可以使用正则表达式。如果你想途欢一个页面中的所有URL为这些URL的实际html连接,也可以使用正则表达式。

所有又累的程序设计语言、文本编辑器、操作系统等都支持正则表达式。有件事的程序员和网络管理员已经关注作为他们技术工具重要内容的正则表达式很长时间了。

正则表达式用正则表达式语言来建立,正则表达式语言是用来完成刚讨论的所有工作及更多工作的一种特殊语言、与任意语言一样,正则表达式具有你必须学习的特殊的语法和指令。

既然正则表达式这么有用,那么正则表达式和MySQL有什么关系呢?已经说过,正则表达式的作用是匹配文本,讲一个模式(正则表达式)与一个文本串进行比较。MySQL用where子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤select检索出的数据。

使用MySQL正则表达式

基本字符匹配

我们从一个非常简单的例子开始。下面的语句检索列prod_name包含文本1000的所有行:

select prod_name from products where prod_name regexp ‘1000’ order by prod_name;

QQ截图20170502181232.png

除了关键字like被regexp替代以外,这条语句看上去非常像使用like的语句。它告诉MySQL:regexp后所跟的东西作为正则表达式(与文字正文1000匹配的一个正则表达式)处理。

为什么要费力地使用正则表达式?在刚才的例子中,正则表达式确实没有带来多少好处,不过请考虑下面的例子:

select prod_name from products where prod_name regexp '.000'order by prod_name;

QQ截图20170502181245.png

这里使用了正则表达式.000。.是正则表达式语言中一个特殊的字符。它表示匹配任意一个字符,因此,1000和2000都匹配且返回

当然,这个特殊的例子也可以用like和通配符来完成。

在like与regexp之间有一个重要的差别。请看下面两条语句:

select prod_name from products where prod_name like '1000' order by prod_name;

select prod_name from products where prod_name regexp '1000' order by prod_name;

如果执行上述两条语句,会发现第一条语句不会返回数据,而第二条语句返回一行,为什么?

like匹配整个列。如果被匹配的文本在列值中出现,like将不会找到它,相应的行也不被返回(除非使用通配符)。而regexp在列值内进行匹配,如果被匹配的文本在列值中出现,regexp将会找到它,相应的行将被返回。这是一个非常重要的差别。

那么,regexp能不能用来匹配整个列值,起到与like相同的作用?答案是坑定的,使用^和$定位符即可。

以上就是mysql中用正则表达式进行搜索教程(一)的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySql官方手册学习笔记2 MySql的模糊查询和正则表达式
  • mysqlhotcopy 正则使用小技巧
  • SQL 正则表达式及mybatis中使用正则表达式
  • 用正则表达式替换数据库中的内容的实例详解
  • mysql中用正则表达式进行搜索匹配教程(三)
  • mysql中用正则表达式进行搜索匹配教程(二)
  • mysql中用正则表达式进行搜索教程(一)
  • 在MySQL中用正则表达式替换数据库中的内容的方法
  • mysql中如何使用正则表达式查询
  • MySQL正则表达式入门教程

相关文章

  • 2017-05-11集群运维自动化工具ansible使用playbook安装mysql
  • 2018-12-05Oracle启动时出现ORA-32004报错的解决方法
  • 2017-05-11Linux下MySQL 5.5.8 源码编译安装记录分享
  • 2018-12-05MYSQL学习总结(四):MYSQL的恢复和备份
  • 2018-12-05oracle10g 数据备份与导入
  • 2017-05-11MYSQL中获取得最后一条记录的语句
  • 2018-12-05关于数据库冗余字段及适当性的理解
  • 2018-12-05 【MySQL 08】存储过程
  • 2018-12-05MySQL实现查看与创建以及删除索引的方法介绍
  • 2018-12-05mysql的bug测试--针对高并发进行测试

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 一个优化MySQL查询操作的具体案例分析
    • 删除MySQL数据库提示操作无法完成
    • Oracle中Union与Union All的区别(适用多个数据库)
    • Oracle Index 的三个问题
    • MySQL数据库优化技术之配置技巧总结_MySQL
    • mysql慢查询和EXPLAIN的相关介绍
    • dos或wamp下修改mysql密码的具体方法
    • MySQL Query Rewrite Plugin使用
    • MySQL中的LOCATE和POSITION函数使用方法
    • phpmyadmin显示MySQL数据表“使用中” 修复后依然无效的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有