SQL Server 2005用模糊检索时,检索数字或字母时,会把中文都查出来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 2005用模糊检索时,检索数字或字母时,会把中文都查出来相关的知识,希望对你有一定的参考价值。
如题,例如:
select t from a where text like '%' x '%'
x=1-9或x=a-z
这个问题应该是因为中文在数据库中以unicode的方式存储,所以能查出来,但是这个问题要怎么解决呢?
不是这样,
是like %1%的话,
是会把字段中字符编码中带有1的中文找出来。
我明白你的意思 但是我觉得这个是不太可能的吧 如果是这样的话 那感觉微软设计的这个ms sql server 就像是有问题的 我觉得还是别的方面的问题
追问我做过几次测试发现的这个问题,也不知道对不对。但几天下来,也不知道怎么解决这个。
参考技术A 不应该这么写吧select t from a where text like '%'+x+'%'
试试。追问
我那只是个例子。。。。。。。要真那么写是报错的。
追答我给你说的意思是,
你必须把字符连接起来 : 比如 like '%1%','%a%'
这样才行 '%'+x+'%'
而你的 '%' x '%' 是什么呢 ? like '%' 1 '%'
这是什么呢 ?? 肯定不是你要的。
- -! 不纠结这个问题,我在查询的写法是没错就行了,不会是这里的问题。这个是敢肯定的。
select distinct id,title,summary,dateandtime from db_Mymark
where summary like '%' + @searchname + '%'
那就不清楚了,但是我还是不太同意你的推论:
“应该是因为中文在数据库中以unicode的方式存储,所以能查出来”
我觉得如果是这样,也太恐怖了。
因为我也只能想到这样,因为中文编码就是一串数字字母的组合,这么解释还能解释过去。但就是不知道怎么解决。
追答我还是建议你从自己程序的方面考虑考虑,不应该出现这种情况。
追问是的,我是考虑先把字符转为编码再查的,但发现,数字怎么转都还是那个。。。。于是又晕了。
参考技术B 晕了以上是关于SQL Server 2005用模糊检索时,检索数字或字母时,会把中文都查出来的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server性能优化运用SQL Server的全文检索来提高模糊匹配的效率