我只是一个做网游运营的,最近朋友问了我一个关于数据库查询的问题,可怜我上大学时学的Oracle都快忘光了,所以特来请教。    例:用户输入某一段话,对应其中的关键字进行比较精确的查找,如“我的奇瑞瑞虎为什么空调噪音这么大?”    问题1:假如其中的关键字为“奇瑞瑞虎”、“空调”和“嗓音”这三个,查询时找出这句话中的关键字,是不是进行逐字排查?事先又怎么设定关键字呢?    问题2:关于数据的查询过程,是不是可以理解为:
         1)在用户所输入的语句中找出关键字(假设为A、B、C)。
         2)查找数据库中和关键字A相关的答案。
         3)在包含关键字A的答案中查找和关键字B相关的答案。
         4)在包含关键字B的答案中查找和关键字C相关的答案。
         5)在用户界面中展示结果
          |__1*已经查找到的包含有关键字A、B、C的答案。
          |__2*未查找到相关答案,建议用户调整搜索范围。
   这样解释的话,一个不怎么懂计算机的人会不会看懂?还有没有更详细的解释方法?当然我是打算用VISIO画流程图出来的。以上两个就是我想知道的问题,烦请各位指教!

解决方案 »

  1.   

    set @a='奇瑞瑞虎'
    set @b='空调'
    set @c='嗓音'select * from dbname where CONTAINS(colname,@a and @c and @b)
    不知道可以不
      

  2.   

    关键在于,事先设定好的关键字可能会很多很多。
    比如奇瑞瑞虎、奇瑞QQ、雪佛莱、雷诺、法拉利、空调、刹车、失灵、油门、控制、车载GPS等等成百上千个。
      

  3.   

    declare @a varchar(80)
    declare @b varchar(80)
    declare @c varchar(80)
    set @a='%'+'奇瑞瑞虎'+'%'
    set @b='%'+'空调'+'%'
    set @c='%'+'嗓音'+'%'select * from dbname where like @a