首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -搜索准确的单词匹配和排序

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

Stack Overflow用户
提问于 2012-12-27 05:16:42
回答 2查看 890关注 0票数 0

,我的表中有以下内容

最佳莱昂纳多DiCaprio电影

最佳塞缪尔·杰克逊电影

最佳爱德华诺顿电影

动画电影

印度电影

印度累赘

印度市场

电影

我想搜索“印度电影”--结果应该是

印度电影

印度 Recipes 印度市场

电影最佳莱昂纳多DiCaprio 电影

最佳塞缪尔·L·杰克逊电影

最佳爱德华诺顿电影

动画电影

如何为此编写SQL查询。

EN

回答 2

Stack Overflow用户

发布于 2012-12-27 06:51:27

您需要在这里使用全文索引搜索。

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

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

查询:

代码语言:javascript
复制
SELECT * FROM table_name
WHERE MATCH (column_name)
AGAINST ('Indian Movies' IN BOOLEAN MODE)

结果:

印第安电影 印度 Recipes 印度市场 电影最佳莱昂纳多DiCaprio 电影 最佳塞缪尔·L·杰克逊电影 最佳爱德华诺顿电影 动画电影

票数 1
EN

Stack Overflow用户

发布于 2012-12-27 05:25:23

你得把绳子分开..。

代码语言:javascript
复制
$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'
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14049669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档