php和MySQL创建发帖_使用PHP和MySQL创建相关或类似的帖子

使用MySQL全文搜索

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

假设你的桌子是文章,你需要找到有关当前帖子标题的相关帖子.像这样做:

SELECT *, MATCH(title, body) AGAINST('$CurrentPostTitle') AS score

FROM 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,那么只会显示包含“1980年音乐”字样序列的帖子.但是,如果您使用MATCH … AGAINST,则会显示包含Music或1980的帖子.此外,包含音乐和1980的帖子将显示在Top上,因为它为每个结果提供了分数,我们按照该分数进行排序.我希望很清楚.

[编辑]:2:

如果您有类别,可以在SQL查询where子句中添加AND Category =’$CurrentCategory’,以获得更具体的结果.

[编辑]:3:OP不能使用全文:

如果您不能使用全文(由于某种原因),您只能显示来自同一类别的5个随机帖子.由于它们属于同一类别,它们至少在某种程度上相关:

SELECT *

FROM articles

WHERE Category = '$CurrentCategory'

LIMIT 5

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值