今天偶然发现用三个汉字搜索会得不到结果,用两个字或四个字搜索也得不到结果。
在数据库里面调用就这样。所以想问下存储过程里面三个汉字的查询要怎么弄?
找了下资料,好像要转成拼音?不知道有没有错。求解?

解决方案 »

  1.   

    补充,刚才试了下like查询是可以的。是全文索引查询不行
      

  2.   

    http://java.xhblog.com/archives/2007/244616.shtml
      

  3.   

    不知道你是不是BS项目
    在BS项目里用URL传的参数就有这种问题,为单最后一个字会出现乱码。
    双就不会,解决方法是一个用UTF8传,然后在接到后在转GB2312。
    单数的汉字最后一个字是会被UTF8转成乱吗的
      

  4.   

    我在数据库里面全文索引建好了。查询也可以实现。然后在数据库(是数据库)里面execute 存储过程.
    奇数字符串(3个字,5个字,7个字),都查询不到,偶数的都可以。单个字也可以。如:
    execute y_doubledelve 't_BusinessInfo','欧伟砂','1'      --无结果
    execute y_doubledelve 't_BusinessInfo','欧伟砂浆','1'    --有结果
    execute y_doubledelve 't_BusinessInfo','欧伟砂浆生','1'   --无结果
    execute y_doubledelve 't_BusinessInfo','欧伟砂浆生产','1' --有结果像这种情况该怎么处理?问题还没想好就发贴。误导大家了。SORRY~
      

  5.   

    完了。测试一下更郁闷了。。有些三个字可以,有些不行~~
    三个字可以的,五个字又不行?
    到底是什么问题?真是郁闷。。谁能讲讲。是不是MSSQL2005中文分词没处理好的问题?
      

  6.   

    你的sql如果用UNICODE字符,也就是nchar,nvarchar,ntext那种,相信不会出现任何问题。
      

  7.   

    还有一种方式,就是存储的时候就用转化的字符进行存储,比如utf-8,然后查询的时候,在进行相应的转换,应该可以解决这样的问题。
      

  8.   

    你的sql如果用UNICODE字符,也就是nchar,nvarchar,ntext那种,相信不会出现任何问题。
    ------------
    up还真没遇到LZ说的情况
      

  9.   

    execute   y_doubledelve   't_BusinessInfo',N'欧伟砂','1'   
    看看
      

  10.   

    我存储过程很长,做了四五个判断,case when then end.不发出来是怕你们没耐性看。呵。