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

时间:2012-12-27 05:16:42

标签: php mysql database web

我的表格中有以下内容

最佳莱昂纳多迪卡普里奥电影

最佳Samuel L Jackson电影

最佳爱德华诺顿电影

动画电影

印度电影

印度食谱

印度市场

我想搜索“印度电影”,结果应该像

印度电影

印度食谱 印度市场

最佳莱昂纳多迪卡普里奥电影

最佳Samuel L Jackson 电影

最佳爱德华诺顿电影

动画电影

我如何为此编写SQL查询。

2 个答案:

答案 0 :(得分:1)

您需要在此处使用Full TEXT索引搜索。

但仅MyISAM表支持全文搜索。

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

<强>查询:

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

<强>结果:

  

印度电影
  印度食谱印度市场
  电影最佳莱昂纳多迪卡普里奥电影
  最佳Samuel L Jackson 电影
  最佳爱德华诺顿电影
  动画电影

答案 1 :(得分:-1)

你需要拆分字符串......

$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'