mysql关键字搜索

时间:2009-02-14 11:28:10

标签: mysql search

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

修改 我如何根据比赛排序?也就是说,应该首先返回匹配最多的行。

2 个答案:

答案 0 :(得分:5)

在布尔模式下使用MySQL Full Text Search。 如果您在搜索'007:quantum solace'时执行此操作,因为它将在列中显示至少一个匹配结果,则可以按相关性进行排序。

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

答案 1 :(得分:1)

查看full text search capabilities of MySQL。设置完全文本索引后,您可以执行以下查询:

SELECT * 
FROM movies
WHERE MATCH(title) AGAINST ('quantum solace' IN BOOLEAN MODE)