首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql语句顶用等号在匹配的字符串后面存在多余的空格也能匹配出来

2014-01-21 
sql语句中用等号在匹配的字符串后面存在多余的空格也能匹配出来发现一个很恶心的是举个栗子,我用一下这条s

sql语句中用等号在匹配的字符串后面存在多余的空格也能匹配出来
发现一个很恶心的是
举个栗子,我用一下这条sql查询
select * from test where code='test'
和下面这条sql查询
select * from test where code='test    '
查询结果是相同的
但是,这个却我不想要的,而且这个会让带空格的各种脏数据影响查询结果,有什么方法屏蔽掉吗?具测试like不会有这个现象,但是不想用like呀,等号不是应该就是完全匹配吗
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

如果code的数据类型是varchar,那么你的2个查询效果是一样的,sql server会自动去掉尾部的空格:


create table test(code varchar(10))

insert into test
select 'test   ' union all
select 'test'
go

select * from test where code='test'
/*
code
test   
test
*/

select * from test where code='test   '
/*
code
test   
test
*/


都有哪些类型会出现这种状况呀


你的code是什么类型的?

就是varchar呀


照理,如果是varchar类型的,再insert into 的时候,就会把'test   '字符串的空格自动去掉的

。。。难道我只能去用like了?真心是木有去掉的呀,而且用管理工具去编辑,里面的空格都是存在的


能给贴个图看看不

热点排行