mysql关键字搜索

mysql关键字搜索

问题描述:

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

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

以布尔模式使用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 

看一看full text search capabilities of MySQL。一旦你建立了一个全文索引,你可以做这样的查询:

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