其实是为了解决下面的问题。从数据库里面搜索nCardName比如说a b,搜索的结果要把有a b的排在最上面,只有a或者b的排在下面,怎么解决??哪位仁兄帮帮忙啊!!!

解决方案 »

  1.   

    帮你顶先。很久没研究fulltext index了.
      

  2.   

    SELECT 
    nCard_Key,
             nCardName,
             MATCH (nCardName) AGAINST ('egg roll' IN BOOLEAN MODE)AS score
      FROM `ncard` 
      WHERE MATCH (nCardName) AGAINST ('egg roll' IN BOOLEAN MODE)
    ORDER BY score DESC;理论上 'egg roll' 就是找出文本中存在 egg 或 roll 的记录
    如果两个词均存在的话.
    它们相似度匹配值会更高些的.
      

  3.   

    敢问--------------其实是为了解决下面的问题。从数据库里面搜索nCardName比如说a b,搜索的结果要把有a b的排在最上面,只有a或者b的排在下面,怎么解决??----------------要实现这个,有什么好的方法那??我就看到mysql介绍里面有这么一段::mysql> SELECT id, body, MATCH (title,body) AGAINST
        -> ('Security implications of running MySQL as root') AS score
        -> FROM articles WHERE MATCH (title,body) AGAINST
        -> ('Security implications of running MySQL as root');
    +----+-------------------------------------+-----------------+
    | id | body                                | score           |
    +----+-------------------------------------+-----------------+
    |  4 | 1. Never run mysqld as root. 2. ... | 1.5055546709332 |
    |  6 | When configured properly, MySQL ... |   1.31140957288 |
    +----+-------------------------------------+-----------------+
    2 rows in set (0.00 sec)就是为了得到score的值,有什么好的建议。。
      

  4.   

    呵呵,
    加个 ORDER BY 就行了.
    就是上面我给你的语句呀.SELECT 
    nCard_Key,
             nCardName,
             MATCH (nCardName) AGAINST ('egg roll' IN BOOLEAN MODE)AS score
      FROM `ncard` 
      WHERE MATCH (nCardName) AGAINST ('egg roll' IN BOOLEAN MODE)
    ORDER BY score DESC;
      

  5.   

    多谢 “shuixin13”。我知道为什么没有搜出结果来了因为 “egg” 这个条件在数据库中有超过一半以上都有所以就没有显示出来“shuixin13”兄接分我的msn:[email protected]我是写java的,希望以后多联系,交个朋友, ok??