当用户输入杰克逊,要把迈克尔杰克逊查出来。
可以在两边加百分号。
当用户输入迈克尔杰克逊,要把杰克逊查出来。
请问怎么做??

解决方案 »

  1.   

    string sql=string.Format("select * from tb where username like '%{0}%'",textbox.Text);
      

  2.   

    那比较麻烦了。你需要托管的支持,在C#里面写分词的函数,能把“刘德华老婆”拆成“刘德华”和“老婆”。
    然后SQL调用CLR功能进行查询
      

  3.   

    可以看这个http://www.phpfans.net/ask/MTA2MTgzMQ.htmlstring Sentence = "中国人民战胜小日本,大获全胜全体成员非常高兴!";  
      string Sentence = Sentence.Segmentation().ToValue();  
      //执行结果 
    Sentence = "中国","人民","战胜","小","日本","大","获","全胜","全体","成员","非常","高兴"
      

  4.   

    lucene.net分词
    CONTAINS
    一个谓词,用于搜索包含基于字符的数据类型的列,该列与单个词和短语,以及与另一个词一定范围之内的近似词精确或模糊(不太精确的)匹配或者加权匹配
    http://topic.csdn.net/u/20070307/17/de57d151-669d-41ff-9f99-56153ebe12a4.html
      

  5.   

    如果你的数据库存的数据是
    aa   123
    bb   456而你希望用户输入 aac的时候. 数据库的记录aa也出来的话.那么就用分词.第一步.用程序把用户输入的词分出来, aac分解成aa和c.第二步.分别查村aa和c是否在数据库里面有记录分词的技术上面几楼已经贴出来了.
      

  6.   

    这样行?
    如果数据库中保存有ABCDE,输入ABC,能查出来。
    如果输入ABCDEFG,就不行了
      

  7.   


    先把用户输入的词.如:abcdefg分解成abc和defg.
      

  8.   

    当用户输入迈克尔杰克逊,要把杰克逊查出来。
    请问怎么做??declare @a nvarchar(00)
    set @a='迈克尔杰克逊'
    select * from tb where charindex(name,@a)>0
      

  9.   

    当用户输入迈克尔杰克逊,要把杰克逊查出来。
    请问怎么做??declare @a nvarchar(100)
    set @a='迈克尔杰克逊'
    select * from tb where charindex(name,@a)>0
      

  10.   

    简单如下:
    select name from tablename where
      instr(name,'&v_name')>0 or instr('&v_name',name)>0;
    如果还要不区分大小写
    select name from tablename where
      instr(lower(name),lower('&v_name'))>0 or instr(lower('&v_name'),lower(name))>0