当前位置: 首页 > news >正文

mysql通配符_MySQL 通配符学习小结

MySQL 通配符

SQL的模式匹配同意你使用“_”匹配不论什么单个字符,而“%”匹配随意数目字符(包含零个字符)。在 MySQL中,SQL的模式缺省是忽略大写和小写的。以下显示一些样例。

注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT LIKE比較操作符。

为了找出以“b”开头的名字:

mysql> SELECT * FROM pet WHERE

nameLIKE "b%";+--------+--------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

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

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

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

为了找出以“fy”结尾的名字:

mysql> SELECT * FROM pet WHERE

name LIKE "%fy";

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

| name | owner | species | sex | birth | death |

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

| Fluffy | Harold | cat | f | 1993-02-04 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

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

为了找出包括一个“w”的名字:

mysql> SELECT * FROM pet WHERE

name LIKE "%w%";

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

| name | owner | species | sex | birth | death |

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

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

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

为了找出包括正好5个字符的名字,使用“_”模式字符:

mysql> SELECT * FROM pet WHERE

name LIKE "_____";

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

| name | owner | species | sex | birth | death |

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

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

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

由MySQL提供的模式匹配的其它类型是使用扩展正則表達式。当你对这类模式进行匹配測试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

扩展正則表達式的一些字符是:

“.”匹配不论什么单个的字符。

一个字符类“[...]”匹配在方括号内的不论什么字符。比如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]” 匹配不论什么小写字母,而“[0-9]”匹配不论什么数字。

“ * ”匹配零个或多个在它前面的东西。比如,“x*”匹配不论什么数量的“x”字符,“[0-9]*”匹配的不论什么数量的数字,而“.*”匹配不论什么数量的不论什么东西。

正則表達式是区分大写和小写的,可是假设你希望,你能使用一个字符类匹配两种写法。比如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的不论什么字母。

假设它出如今被測试值的不论什么地方,模式就匹配(仅仅要他们匹配整个值,SQL模式匹配)。

为了定位一个模式以便它必须匹配被測试值的開始或结尾,在模式開始处使用“^”或在模式的结尾用“$”。

为了说明扩展正則表達式怎样工作,上面所看到的的LIKE查询在以下使用REGEXP重写:

为了找出以“b”开头的名字,使用“^”匹配名字的開始而且“[bB]”匹配小写或大写的“b”:

mysql> SELECT * FROM pet WHERE

nameREGEXP "^[bB]";

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

| name | owner | species | sex | birth | death |

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

| Buffy| Harold | dog | f | 1989-05-13 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

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

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:

mysql> SELECT * FROM pet WHERE

name REGEXP "fy$";

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

| name | owner | species | sex | birth | death |

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

| Fluffy | Harold | cat | f | 1993-02-04 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

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

为了找出包括一个“w”的名字,使用“[wW]”匹配小写或大写的“w”:

mysql> SELECT * FROM pet WHERE

name REGEXP "[wW]";

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

| name | owner | species | sex | birth | death |

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

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

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

既然假设一个正规表达式出如今值的不论什么地方,其模式匹配了,就不必再先前的查询中在模式的双方面放置一个通配符以使得它匹配整个值,就像假设你使用了一个SQL模式那样。

为了找出包括正好5个字符的名字,使用“^”和“$”匹配名字的開始和结尾,和5个“.”实例在两者之间:

mysql> SELECT * FROM pet WHERE

name REGEXP "^.....$";

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

| name | owner | species | sex | birth | death |

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

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

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

你也能够使用“{n}”“反复n次”操作符重写先前的查询:

mysql> SELECT * FROM pet WHERE

name REGEXP "^.{5}$";

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

| name | owner | species | sex | birth | death |

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

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

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

=====================================================================

http://www.xdnf.cn/news/835777.html

相关文章:

  • windows系统中查看linux分区的三种方式
  • sqlite 和berkeley db 的性能比较
  • 项目目标和期望未被清晰传达,如何改进?
  • 百度基本搜索技巧
  • 文件传输中的MD5校验技术
  • 使用libxml2解析XML文件
  • 压箱底的8个网站,各种高效工具应有尽有
  • 计算机网络笔记整理(第七版)谢希仁
  • C++读写文件操作(fstream、ifstream、ofstream、seekg、seekp、tellg、tellp用法)
  • 析取范式和合取范式
  • 什么是延时电路?6种延时电路原理讲解
  • Python的类变量、实例变量
  • Java与JavaScript的区别与联系:有人的地方就有江湖,有浏览器的地方就有JavaScript
  • 5个实用的性能测试工具(软件测试工程师必备)_性能测试用例用什么软件
  • (八)面向对象的特征
  • OPNET入门1-第一个仿真例子(Small Internetworks)
  • ad603中文资料
  • 404 Not Found错误页面的解决方法和注意事项
  • iscsi常用命令
  • MonkeyRunner简介
  • sis最新地址获取方法_拳头最新FPS游戏VALORANT资格免费获取方法
  • 谈《黑社会之龙城岁月》中之大D
  • 密码学基础
  • ExploitDB漏洞库
  • ligerUI框架
  • 流量劫持是什么?常用方法有哪些?
  • 400 java web_"400 bad request"错误解决方案|springmvc接收参数时出现400 bad request
  • Linux命令大全(面试必备)
  • 【Linux】UNIX网络编程
  • 【JavaSE8 高级编程 集合框架】集合框架入门系列①框架概览 2019_8_29