SQL简单问题.急,在线等

查询姓张,姓名为三个字的学生信息.namelike('张__'),但是两个字的信息都出来了,请问为什么,怎么样才能只出来三个字的?着急,在线等,有加分.三楼的你好,你说的... 查询姓张,姓名为三个字的学生信息.
name like('张__'),但是两个字的信息都出来了,请问为什么,怎么样才能只出来三个字的?
着急,在线等,有加分.
三楼的你好,你说的我感觉有一些懂,但又不懂。
书上说,在使用通配符时,对于汉字,一个汉字也算一个字符。
请你给我讲讲这道题char的具体存储好吗?就是2个字的是怎么匹配的?一个汉字不是代表一个字符吗?
你的意思是不是汉字在这里面有些时候占两个字节,有些时候只占一个字节?我不太懂。
为什么'张__强'中间那两个下划线必须是两个汉字而不能只是一个汉字?
展开
 我来答
百度网友e12895c
2008-09-10 · TA获得超过288个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:234万
展开全部
xyphoenix说的没错,把char改为varchar就正确了,但他解释错了,这个和单字节双字节储存无关,不管是char、varchar、nchar、nvarchar哪种,汉字都占2字节,而且在默认的排序规则下都默认1个字符,差别在于nchar、nvarchar是unicode的字符,所以原来的单字节字符如数字、英文在使用nchar和nvarchar同样占用2字节,但是这要使用datalengh()函数才看的出,用len()依然和原来一样
你使用char作为name的基础类型,name like '张__'会出现2个字的原因在于,char和nchar会自动补充空格,如你定义name为char(6),给他赋值'张三'而实际上name的值为'张三 ',会自动补充2个空格填满char(6),所以在使用name like '张__'时就出查出这条数据,但如果改为varchar(6)就不会查出来('_'可以代表空格,但不能代表空)
东桖柳83
2008-09-09 · TA获得超过599个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:405万
展开全部
一个汉字是占用两个字符的,你把下滑线再加两个就OK了
应该是这样吧 name like('张____');在这里有四个下滑线,一个下滑线表示一个字符,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旋天渣观9129
2008-09-09 · TA获得超过1487个赞
知道大有可为答主
回答量:1443
采纳率:0%
帮助的人:1724万
展开全部
sqlserver的单字匹配是_ 任意字匹配是% ?是正常字符
access 的单字匹配是? 任意字匹配是*
你的问题是字段类型造成的,你既然用 _ 匹配了所以是sqlserver,你把name字段设置成了char类型的,造成了2,3个字的名字都匹配,如果你把字段类型改成varchar,就会只出3个字符的了.因为char类型的是按单字节存储信息的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
415590784
2008-09-09 · TA获得超过109个赞
知道答主
回答量:186
采纳率:0%
帮助的人:93.9万
展开全部
select name from student.dbf where name like "张%"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
枫林随记
2008-09-09 · TA获得超过235个赞
知道小有建树答主
回答量:276
采纳率:0%
帮助的人:261万
展开全部
一个汉字是占用两个字符的,应该是name like('张_ _ _ _');’张??’是不行的,?似乎没有什么特别功能,就是一个普通字符。
3楼的说的不太对吧。varchar(n)表示最大长度为n的变长字符串。改成了varchar也不能做到只出现3个字符的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaznbaa
2008-09-10 · 超过12用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:39.9万
展开全部
你这种情况,name是用的char数据类型,只需改为varchar数据类型就行了.
象名称这此不是固定长度的,一般就用可变长度的数据类型
原因嘛其实和一个汉字占两个字节这些没关系.主要是因为如输入的内容不足char类型的长度,数据库会自动在后面加空格对其填充,所以后面接了空格无意义,like的时候就容易会问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式