SQL 模糊查询的问题 高手来解答一下

我有几个问题,想问一下usestudentManagerselect*fromstudentwheres_namelike'刘_'看一下这个语句,我想查询库中只有姓刘的名... 我有几个问题,想问一下use studentManager select * from student where s_name like '刘_'看一下这个语句,我想查询 库中只有姓刘的 名字为一个字的人 比如 ‘’刘天‘’用模糊查询 不就是应该 like ‘刘_’ 吗?问题一: 我执行不出来,这是什么原因?执行了没有结果。。。问题二: 后面加上%就可以了,但是 两个字 和 三个字 都出来了 我只要两个字的这种情况 语句应该怎么写才对 我不加% 就不行 但是加上了 不就是全部的吗? 展开
 我来答
sun_visual
2014-07-03 · TA获得超过682个赞
知道小有建树答主
回答量:718
采纳率:66%
帮助的人:428万
展开全部
你的s_name字段类型应该是varchar吗?如果是char()型的,它后面有空格,应该把空格去掉,使用rtrim(s_name) like '刘_'试一试
追问
嗯嗯 这个好使了 rtrim(s_name) like  这个函数是怎么用的

我的类型是 nchar的 还有所说的空格是什么啊
追答
不管是nchar还是char型,系统都会在后面自动添加空格并使其达到固定长度,所以要将右面的空格去掉,rtrim()函数是去掉右面的空格。
如果为varchar或nvarchar则后面系统不会添加空格,此时就不用rtrim了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanghao_kjlink
2014-07-03 · TA获得超过607个赞
知道小有建树答主
回答量:561
采纳率:100%
帮助的人:271万
展开全部
这个下划线,以前都用来匹配单个英文字母,你中文有可能占用两个,你可以试一试,另外%是1到多个字符。。 所以肯定能匹配出来
追问
两个__我也试过了 还是没有结果,% 用了之后 三个字的也出来了。。。所以不符合条件了
追答
那就换种思路嘛,两个中文length多长?直接在数据中插入一个2个中文的,看看到底多长  先限定长度,然后查询 like ‘刘%’
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tj_angela
2014-07-03 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2588万
展开全部
like '刘_' 这样写是没有问题的
你看看你的刘天后面是不是还有空格
where s_name='刘天' 这样能查出来吗
追问
没有空格,我试了不好使,我不是要查刘天 就是举个例子 我要查所有姓刘 且 后面为一个字的 但是写了之后运行没有结果啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q1q206
2014-07-03 · 超过12用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:29.3万
展开全部
能给个截图吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式