栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用PHP和MySQL创建相关或相似的帖子

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用PHP和MySQL创建相关或相似的帖子

使用MySQL全文搜索的

MATCH (col1,col2,...) AGAINST (expr[search_modifier])
东西。

假设您的表格是

articles
,您需要查找有关当前职位标题的相关职位。像这样做:

SELECt *, MATCH(title, body) AGAINST('$CurrentPostTitle') AS scoreFROM articles WHERe MATCH(title, body) AGAINST('$CurrentPostTitle') ORDER BY score DESC LIMIT 5

这将为您提供前5条相关的帖子。

但是首先请记住通过运行以下查询为该表的列启用全文搜索:

ALTER TABLE articles ADD FULLTEXT (title, body);

[编辑]:为什么不使用

LIKE
对OP的说明:

因为它不会给出正确的结果。假设您当前的标题是“ 1980年的音乐”,并且您想要与此相关的文章。现在,如果您使用的是,

LIKE
则仅会显示包含“ Music
of 1980”一词的序列的帖子。但是,如果使用
MATCH ... AGAINST
,则将出现包含Music OR
1980的帖子。另外,同时包含Music和1980的帖子将出现在Top上,因为它给
SCORE
每个结果都给出一个`` a’‘
,我们正在按该分数排序。我希望这很清楚。


[编辑]:2

如果您有类别,则可以添加

AND Category = '$CurrentCategory'
SQL查询
where clause
以获得更具体的结果。

[编辑]:3:OP无法使用全文

如果由于某种原因不能使用全文,则可以只显示5个来自同一类别的随机信息。由于它们属于同一类别,因此它们至少在某种程度上相关:

SELECt *FROM articles WHERe Category = '$CurrentCategory'LIMIT 5

编辑语法:在MySQL代码中将LIMTI更改为LIMIT



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号