我有我的表如下MySQL的 - 搜索确切的词匹配和排序
最佳莱昂纳多·迪卡普里奥电影
最佳塞缪尔·杰克逊电影
最佳爱德华·诺顿电影
动画电影
印度电影
个印度食谱
印度市场
电影
我想搜索 “印度电影” 的结果应该是像
印度电影
印度食谱 Indi一个市场
电影 最佳莱昂纳多·迪卡普里奥电影
最佳塞缪尔·杰克逊电影
最佳爱德华·诺顿电影
动画电影
我该如何为此编写SQL查询。
我有我的表如下MySQL的 - 搜索确切的词匹配和排序
最佳莱昂纳多·迪卡普里奥电影
最佳塞缪尔·杰克逊电影
最佳爱德华·诺顿电影
动画电影
印度电影
个印度食谱
印度市场
电影
我想搜索 “印度电影” 的结果应该是像
印度电影
印度食谱 Indi一个市场
电影 最佳莱昂纳多·迪卡普里奥电影
最佳塞缪尔·杰克逊电影
最佳爱德华·诺顿电影
动画电影
我该如何为此编写SQL查询。
需要分割字符串...
$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'
也想排序结果 – Ayyappadhas
其简单的@Ayyappadhas你只需添加“ORDER BY标题DESC”在最后它会按降序排列,并将其保留为升序(默认) –
但它只是一个按字母顺序排序。我想首先用“印度电影”显示结果,然后用“印度”结果与“电影”等结果。 – Ayyappadhas
这里需要使用全文索引搜索。
但是全文搜索仅支持MyISAM
表。
添加FULLTEXT
指数将您的列,然后用下面的查询:
查询:
SELECT * FROM table_name
WHERE MATCH (column_name)
AGAINST ('Indian Movies' IN BOOLEAN MODE)
结果:
印度电影
部印度食谱印度市场
电影最佳莱昂纳多·迪卡普里奥电影
最佳塞缪尔·杰克逊电影
最佳爱德华·诺顿电影
动画电影
您可能想提及如何_“将'FULLTEXT'索引添加到您的列”_(而不是别人只是编辑它) – Cerbrus
搜索'全文搜索' –
你试过了什么? –