2009-02-14 250 views
4

我有一个电影名称表,我希望能够在该表中搜索电影。但我希望能够搜索部分标题,并仍然返回结果。例如,如果有一个名为“安慰的量子”的唱片,那么我希望能够搜索“量子安慰”,甚至“007:量子安慰”,我想找到那个唱片。有没有办法做到这一点?mysql关键字搜索

编辑 我该如何根据比赛来排序?也就是说,最匹配的行应该先返回。

回答

5

以布尔模式使用MySQL Full Text Search。 如果您在搜索'007:量子安慰'时这样做,因为它在列中至少包含一个匹配结果,它将显示,您可以通过相关性进行排序。

SELECT *, MATCH(title) AGAINST ('quantum solace' IN BOOLEAN MODE) AS rank 
FROM films 
WHERE MATCH(title) AGAINST ('quantum solace' IN BOOLEAN MODE) ORDER BY rank DESC