gpt4 book ai didi

php - MySQL:向当前用户显示帖子提要和帖子喜欢

转载 作者:行者123 更新时间:2023-11-29 11:18:46 24 4
gpt4 key购买 nike

我想听听您的意见,了解哪种方法是实现这些目标的最佳方法,我在标题中简要解释了这一点。

基本上,我在主页中显示帖子的提要,用户可以喜欢或收藏这些帖子。所以我的目的是在这个 feed 中显示用户之前是否喜欢过这篇文章。

假设这是我的主表

Table 'posts'
-------------
id
title
content
tags

Table 'likes'
-------------
user_id
post_id
date

这是我在主页中的主要查询

SELECT * FROM posts LIMIT 20

如果 current_user() 之前喜欢过每个帖子,我该如何包含在这个查询中?我应该需要执行单独的查询吗?

谢谢大家!!

编辑:我不想按用户喜欢过滤查询,只想像 bool 值一样进入每个帖子,表示当前用户是否喜欢每个帖子!

最佳答案

您可以通过两种方式解决此任务:一个带有联接的查询和两个单独的查询。您应该测试性能并选择最佳方法。

第一个解决方案:

SELECT posts.* FROM posts 
INNER JOIN likes on posts.id=likes.post_id
WHERE likes.user_id='<user id of current user >' LIMIT 20

第二种解决方案

SELECT post_id 
FROM likes
WHERE user_id='<user id of current user >'
LIMIT 20

SELECT * FROM posts
WHERE id in (<list of ids from the first query>)

评论的解决方案:

SQL

SELECT posts.*, likes.user_id as liked FROM posts 
LEFT JOIN likes on posts.id=likes.post_id and likes.user_id='<user id of current user >'
LIMIT 20

PHP

foreach($rows as $row) {
if ($row['liked']) {
//do something
}
}

关于php - MySQL:向当前用户显示帖子提要和帖子喜欢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39318174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com