如何在mysql中按相关顺序获取搜索结果?

时间:2011-07-10 11:15:11

标签: mysql search

我正在尝试根据与搜索关键字的相关性在表格中搜索记录。

我的查询是:

SELECT *
FROM downloads
WHERE (
    (name LIKE '%Micky Mobile%')
    OR (name LIKE '%Micky%' OR name LIKE '%Mobile%')
    OR (name LIKE '%Micky%')
    OR (name LIKE '%Mobile%')
) AND app='1'

这很好但问题是:

我想从这个查询得到的是第一个名称为“Hello Micky Mobile T”的行。

第二名有“Hello Micky T Mobile”的名字。

在第3名排“Hello Micky T”。

在第4位有“Hello Mobile T”的行。

但是上面的查询通过id(自动递增字段)按ASC顺序给出结果。

Union解决了我的问题但它应该花费更多的时间(我想)。 必须有另一种方式。

1 个答案:

答案 0 :(得分:2)

首先,看起来你正在寻找Micky和Mobile两次。

其次,我相信MySQL有一些全文搜索的可能性,它们内置了相关选项: MATCH (col1,col2,...) AGAINST (expr [search_modifier])