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

我有几个问题,想问一下use studentManager select * from student where s_name like '刘_'看一下这个语句,我想查询 库中只有姓刘的 名字为一个字的人 比如 ‘’刘天‘’用模糊查询 不就是应该 like ‘刘_’ 吗?问题一: 我执行不出来,这是什么原因?执行了没有结果。。。问题二: 后面加上%就可以了,但是 两个字 和 三个字 都出来了 我只要两个字的这种情况 语句应该怎么写才对 我不加% 就不行 但是加上了 不就是全部的吗?

第1个回答  2014-07-03
你的s_name字段类型应该是varchar吗?如果是char()型的,它后面有空格,应该把空格去掉,使用rtrim(s_name) like '刘_'试一试追问

嗯嗯 这个好使了 rtrim(s_name) like 这个函数是怎么用的

我的类型是 nchar的 还有所说的空格是什么啊

追答

不管是nchar还是char型,系统都会在后面自动添加空格并使其达到固定长度,所以要将右面的空格去掉,rtrim()函数是去掉右面的空格。
如果为varchar或nvarchar则后面系统不会添加空格,此时就不用rtrim了。

本回答被提问者采纳
第2个回答  2014-07-03
这个下划线,以前都用来匹配单个英文字母,你中文有可能占用两个,你可以试一试,另外%是1到多个字符。。 所以肯定能匹配出来追问

两个__我也试过了 还是没有结果,% 用了之后 三个字的也出来了。。。所以不符合条件了

追答

那就换种思路嘛,两个中文length多长?直接在数据中插入一个2个中文的,看看到底多长 先限定长度,然后查询 like ‘刘%’

第3个回答  2014-07-03
like '刘_' 这样写是没有问题的
你看看你的刘天后面是不是还有空格
where s_name='刘天' 这样能查出来吗追问

没有空格,我试了不好使,我不是要查刘天 就是举个例子 我要查所有姓刘 且 后面为一个字的 但是写了之后运行没有结果啊

第4个回答  2014-07-03
能给个截图吗

模糊查询sql语句的方法 有哪些注意事项
sql模糊查询的语法为“SELECT column FROM table WHERE column LIKE 'pattern'”,一共有四种匹配模式。表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。_表示任意单个字符。模糊查询sql语句是匹配单个任意字符,它常用来限制表达式的字符长度语句。[ ...

sql语句模糊查找的问题
你的意思是说,如果搜索145也能出来,或则126也能出来?所谓模糊查询,意思就是查询字符串是目标字符串的子集,而134,或145本来就不属于123456,思路本来就不对,是实现不了的。一个做法就是你可以试下把查询字符先拆分为单独字符,再用 or 条件链接起来模糊查询,也就是查125的话就 列名 like '%1...

sql server:模糊查询
在SQL Server中,模糊查询通过like关键字配合通配符来实现高级查找。主要有以下几种通配符的用法::此通配符代表匹配任何数量的字符,包括零个字符,即可以匹配空字符串。_:单个下划线_仅匹配单个字符,用于限定某个位置的字符数量。[]:方括号[]用于指定字符范围,如[abc]会匹配a、b或c中的任何一个字符...

关于SQL模糊查询日期时间的方法
在SQL查询中,日期时间的模糊搜索可以通过多种方式进行。首先,你可以使用`Convert`函数将时间类型转换为字符串,然后结合`Like`操作符进行匹配。例如,查询2017年6月30日及其前后的数据,可以写成:`SELECT*FROMtable1WHERECONVERT(varchar,yourtime,120)LIKE'2017-06-30%';`这样,任何在2017年6月30日...

SQL Server:九、模糊查询:查询 0个、1个、多个字符,查询范围
在SQL Server中,模糊查询主要通过使用like关键字和通配符实现。首先,了解通配符的含义是关键:这里代表0个、1个或多个字符,例如查询姓刘的员工信息。再看下划线_,它代表匹配有且只有1个字符,比如查询名字中含有“尚”的员工,这里“尚”字前后可以有0个、1个或多个字符。查询包含“尚”或“史”的...

SQL 怎么实现模糊查询?
1、首先需要开启数据库管理工具,打开SQL语言编写窗体。2、如果我们知道某字段的开头部分,我们可以用 like ‘xx%' select TOP 10 * from CK_ATE where Model like 'PSM24W%'。3、如果我们知道某字段的中间部分,可以使用 like ‘%xx%’select TOP 10 * from CK_ATE where Model like '%24W%'...

sql模糊查询语句怎么写啊
一、基本语法 在SQL中,模糊查询通常使用`LIKE`关键字配合通配符来实现。基本语法如下:sql SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE 模糊查询模式;其中,模糊查询模式可以使用两种通配符:1. `%`:代表任意数量的字符。2. `_`:代表一个字符。二、示例说明 假设我们有一个名为"users"的表,...

求教.模糊查询字符串的问题
使用SQL 通配符可以替代一个或多个字符,即模糊查询。SQL 通配符必须与 LIKE 运算符一起使用。在 SQL 中,可使用以下通配符如下:1、% 替代一个或多个字符 2、_ 仅替代一个字符 3、[charlist] 字符列中的任何单一字符 4、[^charlist]或者[!charlist] 不在字符列中的任何单一字符 以图中...

SQL模糊查询语句怎么写啊
1、假设表名为product,商品名为name,简界为remark.则可如下写:select [name],[remark] from product name like '%aa%' or remark like '%aa%'.注:上面单引号的aa你表模糊查询输入的字符。2、select * from (表名) where (搜索名称)like '%%' and id like '%(简介)%'3、用 Like ...

SQL多表模糊查询
1.我觉得你这样就行了,一般也是这样来实现的 2.对于模糊查询T-SQL有四个通配符 :包含0个或多个字符 _:匹配指定;[]:指定范围 [^]:排除范围 3.你考虑的这种空格,可以在查询前,用js正则表达式来过滤。4.对于稍复杂点的关键词搜索(比如新闻),常用的办法是在数据库中添加一个keyword字段,来...

相似回答