A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 许庭洲 黑马帝   /  2012-10-10 14:10  /  1508 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


进行单字符匹配的通配符为半角下划线"_",它匹配单个出现的字符。
比如通配符表达式"b_d"匹配第一个字符为b,第二个字符为任意字符,第三个字符为d的字符串,“bed”,"bad"都能匹配这个表达式,而"bd","abc","build"等不能匹配这个表达式;通配符表达式"_oo_"匹配第一个字符为任意字符,第二个字符为o,第三个字符为o,第四个字符为任意字符的字符串,“look”,"took","cool"都能匹配这个表达式,而"rom","todo"等不能匹配这个表达式
下面来演示一下单字符匹配的用法。
检索T_Employee表中FName字段匹配如下规则的数据行:以任意字符开头,剩余部分为"erry"。
根据通配符表达式语法,得知这个匹配规则对应的通配符表达式为"_erry",因此编写如下的SQL:

SELECT * FROM T_Employee WHERE FName LIKE '_erry'

执行完毕就能在输出结果中看到下面的执行结果:
FNumber                 FName                  FAge                    FSalary
DEV002                   Jerry                     28                       2300.80
SALES002                Kerry                     28                       6200.00


"Jerry","Kerry"两个字符串能够匹配通配符表达式"_erry",所以被显示到了结果集中,而其他数据行由于不匹配此通配符表达式,所以被过滤掉了。
单字符匹配在通配符表达式中可以出现多次,比如程序员要检索长度为4,第三个字符为“n”,其它字符为任意字符的姓名。
根据通配符表达式语法,得知这个匹配规则对应的通配符表达式为"__n_"(注意前两个字符为连续的两个下划线),那么需要编写如下的SQL:

SELECT * FROM T_Employee WHERE FNname LIKE  '__n_'

执行完毕就能在输出结果中看到下面的执行结果:

FNumber                 FName                  FAge                    FSalary
HR001                     JANE                    23                        2200.88
HR002                     Tina                      25                       5200.35



2 个回复

倒序浏览
请教楼主一下,
__n_  <----------------->  结果为 JANE 和 Tina  ,这样的结果难道不区分大小写吗?
回复 使用道具 举报
蔡嘉 发表于 2012-10-10 16:39
请教楼主一下,
__n_    结果为 JANE 和 Tina  ,这样的结果难道不区分大小写吗? ...

太有才了! 当初由于大小写没切换,应该将上面的JANE改为jane。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马