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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡章诚 中级黑马   /  2013-6-13 08:17  /  2204 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 胡章诚 于 2013-6-13 21:44 编辑

我做模糊查询的时候,用“左%”查出来的有数据,但是用‘左__’却没有数据,
sName=‘左勇杰’,有谁知道这是怎么回事吗?         
select * from Student where sName like'左__';

2.jpg (47.2 KB, 下载次数: 0)

2.jpg

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

11 个回复

倒序浏览
1.进行单字符匹配的通配符为半角下划线"_", 它匹配单个出现的字符;
   例如: 通配符表达式"b_d"匹配第一个字符为b, 第二个字符为任意字符,第三个字符为d的字符串;
2. 进行多字符匹配的通配符为半角百分号"%", 它匹配任意次数(零或多个)出现的任意字符;
   例如:通配符表达式"%h"匹配以"h"开头,任意长度的字符串, "h","herry","hj"都能匹配这个表达式.
回复 使用道具 举报
% 任意长度       —下划线,代表一个长度                 比如   张 _    查出来的只有姓张的,两个字的名字    张% 可以查出来 张三三   张斯斯四  所有姓张的人的名字

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
许庭洲 发表于 2013-6-13 08:44
1.进行单字符匹配的通配符为半角下划线"_", 它匹配单个出现的字符;
   例如: 通配符表达式"b_d"匹配第一个 ...

我加了两个“_”,所以  左__ 应该可以查询出  ‘左勇杰’啊,但是没有查到
回复 使用道具 举报
胡章诚 发表于 2013-6-13 08:54
我加了两个“_”,所以  左__ 应该可以查询出  ‘左勇杰’啊,但是没有查到 ...

最好采用多字符匹配的通配符为半角百分号"%"匹配, select * from Student where sName like '左%';
回复 使用道具 举报
本帖最后由 李晶晶 于 2013-6-13 09:05 编辑

模糊查询有两个通配符匹配:一个是单字符“-”下划线,它匹配单个出现的字符。一个是多字符“%”百分号,它匹配任意字数(零个或多个)出现的字符。
‘左_’只是匹配出姓“左”的后面是单个名字的,例如“左三”,“左四”,如果想查出“左思勇”这样的,除了用‘左%’,用'左__'左后边两个下划线,也是能查出来的.如果楼主用'左__'左后边两个下划线没有查出来,你检查一下你输入的下划线是否是英文输入法下的“ _”.

回复 使用道具 举报
李晶晶 发表于 2013-6-13 09:03
模糊查询有两个通配符匹配:一个是单字符“-”下划线,它匹配单个出现的字符。一个是多字符“%”百分号,它 ...

不知道什么情况,还是查询不出来,下划线貌似只能在英文输入法的时候输入吧,呵呵
回复 使用道具 举报
胡章诚 发表于 2013-6-13 09:08
不知道什么情况,还是查询不出来,下划线貌似只能在英文输入法的时候输入吧,呵呵 ...

;P就是就是 嘿嘿  那就不清楚了 。
回复 使用道具 举报
进行单字符匹配时使用通配符半角下划线"_", 进行多字符匹配最好使用通配符为半角百分号"%"!

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
还是老老实实的用"左%"吧。。。
回复 使用道具 举报
lyn 中级黑马 2013-6-13 13:53:10
11#
看了楼主的,我也试了一下,发现是可以,原因就是不清楚了,坐等大神

捕获.PNG (11.86 KB, 下载次数: 0)

捕获.PNG
回复 使用道具 举报
好吧,好吧,我找到原因了,哈哈哈哈哈,我把数据类型设置为nchar(10),数据库将没有占满的长度补成空格了,所以用下划线是查不出来的,必须用  %

麻烦各位了,呵呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马