`
zheng0324jian
  • 浏览: 182156 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql查询语句对正则表达式的支持

阅读更多

1.like

匹配模糊查询

例如:

WHERE column LIKE pattern

WHERE name LIKE '张%'   --匹配姓张的

WHERE name NOT LIKE '%剑%' --匹配名字中含有剑字的或者第一个字是什么   第二个字是什么这些都很是简单就不多说了。

 

2.REGEXP

这个功能很好很强大

直接上例子:

update people set disable = 1 where nick REGEXP '^[a-z]+$'  ;

---匹配名字中全是字母的(大小写字母都有,暂时没搞清为什么不区分大小写)

 

下面摘一段http://hi.baidu.com/baichoufei/item/481b354b96ca5b0ec11613be   金风细雨楼

整理自清华大学出版社《MYSQL入门很简单》

基本形式
属性名 regexp ‘匹配方式’
正则表达式的模式字符
^ 匹配字符开始的部分
eg1:  从info表name字段中查询以L开头的记录
         select * from info where name regexp '^L';
eg2:  从info表name字段中查询以aaa开头的记录
       select * from info where name regexp '^aaa';
$ 匹配字符结束的部分
eg1:   从info表name字段中查询以c结尾的记录
       select * from info where name regexp 'c$';
eg2:   从info表name字段中查询以aaa结尾的记录
       select * from info where name regexp 'aaa$'
;
.  匹配字符串中的任意一个字符,包括回车和换行
eg1:   从info表name字段中查询以L开头y结尾中间有两个任意字符的记录
      select * from info where name regexp '^L..y$';
[字符集合]匹配字符集合中的任意字符
eg1:   从info表name字段中查询包含c、e、o三个字母中任意一个的记录
      select * from info where name regexp '[ceo]';
eg2:   从info表name字段中查询包含数字的记录

       select * from info where name regexp '[0-9]';

eg3:   从info表name字段中查询包含数字或a、b、c三个字母中任意一个的记录
       select * from info where name regexp '[0-9a-c]';
[^字符集合]匹配除了字符集合外的任意字符
eg1:   从info表name字段中查询包含a-w字母和数字以外字符的记录
      select * from info where name regexp '[^a-w0-9]';
s1|s2|s3 匹配s1s2s3中的任意一个
eg1:   从info表name字段中查询包含'ic'的记录
      select * from info where name regexp 'ic';
eg2:   从info表name字段中查询包含ic、uc、ab三个字符串中任意一个的记录
      select * from info where name regexp 'ic|uc|ab';
*  代表多个该字符前的字符,包括0个或1个
eg1:   从info表name字段中查询c之前出现过a的记录
      select * from info where name regexp 'a*c';
+  代表多个该字符前的字符,包括1个
eg1:   从info表name字段中查询c之前出现过a的记录
      select * from info where name regexp 'a+c';(注意比较结果!)
字符串{N} 字符串出现N次
eg1:   从info表name字段中查询出现过a3次的记录
      select * from info where name regexp 'a{3}';
字符串{M,N}字符串最少出现M次,最多出现N次
eg1:   从info表name字段中查询ab出现最少1次最多3次的记录
      select * from info where name regexp 'ab{1,3}';
     
MYSQL中自带通配符(LIKE关键词)
%可以表示任意长度的字符(包括0)
-可以表示单个字符
分享到:
评论

相关推荐

    MySQL正则表达式

    MySQL支持通过`REGEXP`操作符来进行正则表达式的匹配,这对于复杂的数据查询和模式匹配非常有用。如果你熟悉PHP或Perl等语言中的正则表达式,那么在MySQL中使用它们会相对容易上手。 #### 三、正则表达式基本语法 ...

    MySQL查询正则表达式.pdf

    - MySQL查询语句中,可以使用`REGEXP`关键字配合正则表达式进行复杂的匹配操作,如`SELECT column FROM table WHERE column REGEXP 'pattern'`。 - 正则表达式广泛应用于数据清洗、数据分析、日志分析等领域。 5....

    正则表达式MySQL参考文档

    正则表达式在MySQL中的应用是数据库查询中的一个重要部分,它允许我们进行复杂的数据筛选和匹配操作。在MySQL中,正则表达式主要用于`WHERE`子句中的`REGEXP`或`RLIKE`操作符,使得我们可以根据模式匹配来查询数据。...

    正则表达式+MySQL参考文档

    在MySQL中,正则表达式的性能可能会比简单的字符串比较慢,因此在对大量数据进行查询时,如果可能,应尽量避免使用正则表达式。然而,对于复杂的模式匹配和数据清理任务,正则表达式是不可或缺的工具。 除了`REGEXP...

    MySql比知必会+正则表达式比知必会.zip

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,而正则表达式则是数据处理和文本搜索中的强大工具。本资料包结合了这两个重要主题,旨在帮助学习者深入理解和熟练掌握MySQL数据库操作和正则表达式的基本概念及...

    MySQL中REGEXP正则表达式使用大全

    MySQL遵循POSIX标准,采用了Henry Spencer开发的正则表达式库,同时对其进行了扩展,以更好地适应SQL语句中的模式匹配。以下是在MySQL中使用REGEXP进行模式匹配时可以利用的特殊字符和结构,并结合实例来详细解析...

    mysql update正则替换sql语句

    本知识点将围绕MySQL数据库中的UPDATE语句与正则表达式结合使用的方法进行深入讲解。 MySQL的UPDATE语句用于修改表中的数据,当我们需要根据复杂的条件来更新记录时,可以利用正则表达式(REGEXP)来指定匹配模式。...

    MySQL中使用replace、regexp进行正则表达式替换的用法分析

    MySQL数据库作为最流行的开源数据库之一,提供了多种工具来执行这类操作,其中replace函数和regexp正则表达式是强大的工具。replace函数可以通过简单的字符串替换来更新数据,而regexp则可以使用复杂的正则表达式...

    java jquery css javaScript mySql HTML jtsl 正则表达式 Spring 帮助文档

    MySQL的帮助文档会详细讲解SQL语句、数据库管理、性能优化等。 7. **JSTL**: JSP标准标签库(JSTL)是用于JSP页面的标准标签集,提供了更优雅的页面编写方式。jtsl.chm会涵盖各个标签的用法和实例。 8. **Spring框架...

    基于Java实现正则表达式提取关键字并插入数据库

    在本项目中,我们主要探讨如何使用Java编程语言来实现正则表达式的关键字提取,并将这些关键字存储到MySQL数据库中。这是一个常见的任务,尤其是在数据分析、日志处理或信息提取等场景下。以下是对这个过程的详细...

    正则表达式和运算符PPT学习教案.pptx

    在MySQL中,正则表达式查询可以通过`REGEXP`关键字实现。例如,要从`student`表的`name`字段中查找以特定字母"Л"开头的记录,可以使用如下SQL语句: ```sql SELECT * FROM student WHERE name REGEXP '^L'; ``` ...

    MySql中使用正则表达式查询的方法

    Mysql 使用 REGEXP 关键字指定正则表达式的字符匹配模式。 1. 字符 ‘^’ 查询以特定字符或字符串开头的记录 SELECT * FROM user WHERE email REGEXP '^a' 字符 ‘^’ 匹配以特定字符或字符串开头的记录,以上...

    MySql官方手册学习笔记2 MySql的模糊查询和正则表达式

    以下是对MySql官方手册中关于模糊查询和正则表达式的知识点的详细解读。 首先,我们来理解模糊查询。MySQL中的模糊查询主要通过LIKE关键字和它的一对操作符%和_来进行。%代表任意数量的字符(包括零个字符),而_...

    mysql 正则表达式查询含有非数字和字符的记录

    在数据库查询中,经常需要根据特定的模式来匹配...以上就是有关MySQL中使用正则表达式进行含有非数字和字符的记录查询的知识点。通过这些方法,你可以根据自己的需求构建复杂的查询条件,从而实现更精细的数据检索。

    数据库中使用正则表达式小结

    数据库中使用正则表达式是一种...在使用过程中,除了上述的知识点外,还应熟悉相关数据库系统的正则表达式方言,因为不同的数据库系统(如MySQL、PostgreSQL、Oracle等)对正则表达式的支持和实现细节可能有所差异。

    Python、web、数据库、正则表达式、Django

    Python的`re`模块提供了对正则表达式的支持。在达内的教程中,会教授如何构建和使用正则表达式,如匹配特定模式、分组、捕获和反向引用等,帮助理解并解决文本处理中的各种问题。 【Django】 Django是一个高效且...

    mysql中如何使用正则表达式查询

    MySQL数据库系统支持使用正则表达式来进行复杂的模式匹配,从而实现灵活的数据查询。在SQL语句中,可以使用`REGEXP`或`RLIKE`操作符来执行正则表达式匹配。下面详细说明如何使用正则表达式进行查询,包括正则表达式...

    简述MySQL 正则表达式

    MySQL 同样也支持其他正则表达式的匹配, MySQL中使用 REGEXP 操作符来进行正则表达式匹配。 如果您了解PHP或Perl,那么操作起来就非常简单,因为MySQL的正则表达式匹配与这些脚本的类似。 下表中的正则模式可应用于...

    php中常见的sql攻击正则表达式汇总

    例如,如果表名首字符在a-z的范围内,则可以通过SQL查询语句配合正则表达式'^[a-z]'来匹配。 进一步地,攻击者可以通过修改LIMIT的值,对接下来的表名进行逐一猜测,以完成对表名的盲注攻击。在某些情况下,攻击者...

Global site tag (gtag.js) - Google Analytics