SQL 模糊查询的问题 高手来解答一下
我有几个问题,想问一下usestudentManagerselect*fromstudentwheres_namelike'刘_'看一下这个语句,我想查询库中只有姓刘的名...
我有几个问题,想问一下use studentManager select * from student where s_name like '刘_'看一下这个语句,我想查询 库中只有姓刘的 名字为一个字的人 比如 ‘’刘天‘’用模糊查询 不就是应该 like ‘刘_’ 吗?问题一: 我执行不出来,这是什么原因?执行了没有结果。。。问题二: 后面加上%就可以了,但是 两个字 和 三个字 都出来了 我只要两个字的这种情况 语句应该怎么写才对 我不加% 就不行 但是加上了 不就是全部的吗?
展开
4个回答
展开全部
你的s_name字段类型应该是varchar吗?如果是char()型的,它后面有空格,应该把空格去掉,使用rtrim(s_name) like '刘_'试一试
追问
嗯嗯 这个好使了 rtrim(s_name) like 这个函数是怎么用的
我的类型是 nchar的 还有所说的空格是什么啊
追答
不管是nchar还是char型,系统都会在后面自动添加空格并使其达到固定长度,所以要将右面的空格去掉,rtrim()函数是去掉右面的空格。
如果为varchar或nvarchar则后面系统不会添加空格,此时就不用rtrim了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个下划线,以前都用来匹配单个英文字母,你中文有可能占用两个,你可以试一试,另外%是1到多个字符。。 所以肯定能匹配出来
追问
两个__我也试过了 还是没有结果,% 用了之后 三个字的也出来了。。。所以不符合条件了
追答
那就换种思路嘛,两个中文length多长?直接在数据中插入一个2个中文的,看看到底多长 先限定长度,然后查询 like ‘刘%’
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
like '刘_' 这样写是没有问题的
你看看你的刘天后面是不是还有空格
where s_name='刘天' 这样能查出来吗
你看看你的刘天后面是不是还有空格
where s_name='刘天' 这样能查出来吗
追问
没有空格,我试了不好使,我不是要查刘天 就是举个例子 我要查所有姓刘 且 后面为一个字的 但是写了之后运行没有结果啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能给个截图吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询