MySQL -搜索精确的单词匹配和排序


MySQL - Search exact word match and ordering

我的表

最佳电影

最佳电影

爱德华·诺顿最佳电影

动画电影

印度电影

印度食谱

印度市场

电影

我想搜索"印度电影",结果应该是

印度电影

印度

食谱市场印度

电影

最佳电影

最佳塞缪尔·杰克逊电影

最佳电影

电影

动画

我怎么能写一个SQL查询。

这里需要使用全文索引搜索

但是全文搜索只支持MyISAM表。

为列添加FULLTEXT索引,然后使用以下查询:

查询:

SELECT * FROM table_name
WHERE MATCH (column_name)
AGAINST ('Indian Movies' IN BOOLEAN MODE)

结果:

印度

电影
印度菜谱印度市场
电影最佳小李子电影
最佳塞缪尔·杰克逊电影
最佳爱德华·诺顿电影
电影动画

你需要拆分字符串…

$raw_results = mysql_query("SELECT * FROM movie WHERE `title` LIKE '%".$query."%' OR `title` LIKE '%".$query1."%'") or die(mysql_error());
// movie is the name of our table
// '%$query%' and '%$query1%' is what we're looking for, % means anything, for example if $query is Indian Movies
// it will match "Indian Movies", "Indian Recipes Indian Market", "Movies Best Leonardo DiCaprio Movies", if you want exact match use `title`='$query'