我正在尝试根据与搜索关键字的相关性在表格中搜索记录。
我的查询是:
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解决了我的问题但它应该花费更多的时间(我想)。 必须有另一种方式。
答案 0 :(得分:2)
首先,看起来你正在寻找Micky和Mobile两次。
其次,我相信MySQL有一些全文搜索的可能性,它们内置了相关选项: MATCH (col1,col2,...) AGAINST (expr [search_modifier])