典型数据库查询问题:
假如我现在有一个为查询条件的字符串(具体的字符串是变化的,以下是打个比方):
可能是"成都人民南路"或"人民"
也可能是"人民南路"
也可能是"南路"或"四川省成都市人民南路"
我在数据库中有一个是"成都市人民南路"
如上面的条件都成立,怎么把这条记录查询出来呢?谢谢兄弟们呀!:)

解决方案 »

  1.   

    select * from test
    where n1 like %[参数]%
      

  2.   

    你的可用分是不是太多了,一发就两个,两个都100分,基础类中一个,DataBase中一个。跟你说:有问题,不知道是哪一类,或者不管它是哪一类,都往基础类中发,那里一定会有高手(当然不包括我了)回答你的.你也可以节约点分,以便多问问题.
      

  3.   

    这当然要用模糊查询呀,在where语句里添加:
    SQL.Add(Format(' and farendaibiao like ''%s'' ',['%'+edit_1.text+'%']));
      

  4.   

    i 服了you 这是简单的模糊查询,找本sql 的数看看吧
      

  5.   

    with adoquery1 do
    begin
      filtered:=false;
      filter:='字段>='+''''+trim(条件)+''''+chr(0)+' and 字段<='+''''+trim(条件)+''''+chr(255);
      filtered:=true;
    end;
      

  6.   

    楼主的要求很简单,但是实现起来比较复杂,是像Google一样给你智能分词查询
    首先得有个词库吧,你才知道怎么分,有了词库后要考虑的就是效率了,如果数量量大的话.词库可以找一个输入法,用输入法生成器把它导出来,然后删除单字和编码,就有不少常用的了,特殊的就不好办了,然后分词,再构造SQL语句(用现成的数据库的话,考虑不来效率了),相信楼主自己可以解决了
      

  7.   

    ysai(蓝色忧郁) :终于理解我的意思了哈,对,这不是一个简单like查询
      

  8.   

    上面我是打过比方哈,查询的条件是变化,有可能得到的字符串是"上海交大”但数据库里只有一个"上海市交大..”那我不是要把中国的地名穷举完???呵呵呵
    gardenyang(太阳雨) :谢谢你,但我这全都是自动的匹配,没有让用户操作的空间,而且我的数据量是海量数据,即使让用户做也是不可能的哈请问各位有没有什么好的办法?