`

统配符 * ? _ %

 
阅读更多

MySQL 通配符

 

SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。

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

 

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

mysql> SELECT * FROM pet WHERE name LIKE "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 name REGEXP "^[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 |
+-------+--------+---------+------+------------+-------+

 

Linux下通配符总结

 

* - 通配符,代表任意字符(0到多个)
? - 通配符,代表一个字符
# - 注释
/ - 跳转符号,将特殊字符或通配符还原成一般符号
| - 分隔两个管线命令的界定
; - 连续性命令的界定
~ - 用户的根目录
$ - 变量前需要加的变量值
! - 逻辑运算中的"非"(not)
/ - 路径分隔符号
>, >> - 输出导向,分别为"取代"与"累加"
' - 单引号,不具有变量置换功能
" - 双引号,具有变量置换功能
` - quote符号,两个``中间为可以先执行的指令
() - 中间为子shell的起始与结束
[] - 中间为字符组合
{} - 中间为命令区块组合
Ctrl+C - 终止当前命令
Ctrl+D - 输入结束(EOF),例如邮件结束的时候
Ctrl+M - 就是Enter
Ctrl+S - 暂停屏幕的输出
Ctrl+Q - 恢复屏幕的输出
Ctrl+U - 在提示符下,将整行命令删除
Ctrl+Z - 暂停当前命令
&& - 当前一个指令执行成功时,执行后一个指令
|| - 当前一个指令执行失败时,执行后一个指令

 

 

 

 

 

其中最常用的是*、?、[]和 ‘。下面举几个简单的例子:

 

1,ls test*             <== *表示后面不论接几个字符都接受(没有字符也接受)

 

2,ls test?            <== ?表示后面当且仅当接一个字符时才接受

 

3,ls test???       <== ???表示一定要接三个字符

 

4,cp  test[1~5]  /tmp      <== test1, test2, test3, test4, test5若存在,则复制到/tmp目录下

 

5,cd  /lib/modules/' uname  -r'/kernel/drivers        <== 被 ' ' 括起来的命令先执行

分享到:
评论

相关推荐

    计算机应用基础(第二版)试卷2.docx

    在搜索或显示文件目录时,若用户选择统配符*.*含义为( )。 A.选中所有含有*的文件 B.选中所有扩展名中含有*的文件 C.选中所有文件 D.选中非可执行文件 11.通常所说的计算机病毒是( )。 A.细菌感染 B.被损坏的...

    客户管理系统

    查找支持统配符(*代表任意字符,?代表单个字符)。&lt;BR&gt;?? ● 除了按汉字查找外,程序自带汉字拼音库,可以按照读音找(仅限姓名),这点对于中文数据库很重要,国外同类软件不会有此功能。但在输入数据时会自动加上...

    新款内存搜索替换补丁制作工具开源,支持堆动态补丁,HOOK-易语言

    2.完美支持统配符?? ?? ?? ??,XX XX XX XX等搜索。 3.为什么说支持在堆中 打入补丁? 因为 每堆中的代码次申请都有可能变化、所以在堆中打入JMP等一系列长跳转 EIP的指令显得尤为困难、所以这款补丁根据历史的查漏...

    cmake_library_exe_example.tar.gz

    cmake方式创建library,并创建可执行文件的简单示例。使用到了 add_executable() add_library() target_add_libraries()等命令。同时用到了统配符命令file(GLOB ).

    顶天文件加解密器V1.0免费安装版

    支持多种统配符文件的加密|解密; 用户可自由定制密钥,以及加密时采用备份文件,都大大增强了安全性和可靠性; 多种混合内容加解密不会出现问题,例如一篇Word文档中既有文字信息、还有多处图片信息,它都能...

    子网掩码计算器,计算ip范围

    子网掩码计算器:子网掩码计算范围、十进制ip计算器、统配符掩码计算器

    OS上机实验报告.doc

    改正某些缺陷) " "4.10 修改del、copy等命令,使其可以使用统配符 * " "目的与任务: " "理解操作系统文件系统的某些工作原理,学习文件操作命令和目录操作命令的设计" "方法。通过实验,使学生加深对操作系统文件...

    Gun make中文手冊

    4.4.1 统配符使用举例 4.4.2 通配符存在的缺陷 4.4.3 函数wildcard 4.5 目录搜寻 4.5.1 一般搜索(变量VPATH) 4.5.2 选择性搜索(关键字vpath) 4.5.3 目录搜索的机制 4.5.4 命令行和搜索目录 4.5.5 隐含...

    安装程序制作工具——wise9

    非常著名的安装程序制作工具,...18. 可以使用统配符包含或排除文件; 19. 可以使用获取系统信息脚本动作返回以当前时区为格式的日期值,同时还可以返回剩余空间的值。 20. 新的适用于 Microsoft SMS 管理员程序选项。

    wise9 安装程序制作工具

    18. 可以使用统配符包含或排除文件; 19. 可以使用获取系统信息脚本动作返回以当前时区为格式的日期值,同时还可以返回剩余空间的值。 20. 新的适用于 Microsoft SMS 管理员程序选项。 原版软件安装序列号:...

    GNU make中文手册

    4.4.1 统配符使用举例 4.4.2 通配符存在的缺陷 4.4.3 函数wildcard 4.5 目录搜寻 4.5.1 一般搜索(变量VPATH) 4.5.2 选择性搜索(关键字vpath) 4.5.3 目录搜索的机制 4.5.4 命令行和搜索目录 4.5.5 隐含规则和搜索...

    GNU MAKE 中文手册

    4.4.1 统配符使用举例 4.4.2 通配符存在的缺陷 4.4.3 函数wildcard 4.5 目录搜寻 4.5.1 一般搜索(变量VPATH) 4.5.2 选择性搜索(关键字vpath) 4.5.3 目录搜索的机制 4.5.4 命令行和搜索目录 4.5.5 隐含...

    GNU make 中文手册 网页版

    4.4.1 统配符使用举例 4.4.2 通配符存在的缺陷 4.4.3 函数wildcard 4.5 目录搜寻 4.5.1 一般搜索(变量VPATH) 4.5.2 选择性搜索(关键字vpath) 4.5.3 目录搜索的机制 4.5.4 命令行和搜索目录 4.5.5 隐含...

    中文简体压缩软件RAR 6.0

    用户手册 ~~~~~~~~ RAR 3.30 32 位控制台版本 ~~~~~~~~~~~~~~~~~~~~~~~~ =-=-=-=-=-=-=-=-=-=-=-=-=-=- ... 欢迎使用 RAR 压缩文件管理器!... RAR/DOS32 版本使用 _recover.rar 和 _reconst.rar ...

    【推荐】GNU make中文手册

    Makefile的规则 4.1 一个例子 4.2 规则语法 4.3 依赖的类型 4.4 文件名使用通配符 4.4.1 统配符使用举例 4.4.2 通配符存在的缺陷 4.4.3 函数wildcard 4.5 目录搜寻 4.5.1 一般搜索(变量...

    P2P网络管理员V3.0

    软件支持对WWW访问进行有效的控制,网络管理员可以使用黑名单或者白名单,同时还可以使用统配符来定义网址;软件还内置了丰富的色情站点库、股票站点库;配合企业门户邮箱设置功能,您完全可以实现让员工仅可以访问...

    网络守护神4.5完美版

     软件支持对WWW访问进行有效的控制,网络管理员可以使用黑名单或者白名单,同时还可以使用统配符来定义网址;软件还内置了丰富的色情站点库、股票站点库;配合企业门户邮箱设置功能,您完全可以实现让员工仅可以...

    入门学习Linux常用必会60个命令实例详解doc/txt

    例如,用户登录后,按一下“Alt+ F2”键,用户就可以看到上面出现的“login:”提示符,说明用户看到了第二个虚拟控制台。然后只需按“Alt+ F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用...

Global site tag (gtag.js) - Google Analytics