gpt4 book ai didi

php - 我如何限制它以排除重复项?我的消息出现了两次,因为我与多个人成为 friend

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

问题:有人可以帮我修复以下代码以满足以下信息:

使用此查询时,它会发现我的用户名在数据库中的差异列上多次存在,因此在查询中找到它们时会复制我的帖子。我希望它显示同一个人不同时间戳的帖子,但如果时间戳相同则不显示同一个人的帖子。

可能是一种更好的查询编码方式,如果是这样,我不介意看到这些选项。执行 UNION 查询是执行此操作的最佳方法吗?

$query = "SELECT p.* ".
"FROM posts p ".
"INNER JOIN friendships f ON p.username = f.user2 OR p.username = f.user1 ".
"WHERE f.user1 = '$sessionusername' OR f.user2 = '$sessionusername' ORDER BY id DESC";
<小时/>

解决方案:

我在这里回答我自己的问题,只是为了根据我为解决问题所做的工作为某人提供一个可行的解决方案。我尝试按ID分组,然后转身按ID排序;然而,它抛出了一个错误——所以我改为按时间戳排序,并按 ID 分组。下面是我的代码。为我工作 - 希望这最终能帮助其他人!

$query = "SELECT p.*, MAX(timestamp) AS latest ".
"FROM posts p ".
"INNER JOIN friendships f ON p.username = f.user2 OR p.username = f.user1 ".
"WHERE f.user1 = '$sessionusername' OR f.user2 = '$sessionusername' GROUP BY id ORDER BY latest DESC";

最佳答案

使用 GROUP BY 告诉 mysql 您希望哪些实体/字段是唯一的:

SELECT p.*
FROM posts p
INNER JOIN friendships f ON (p.username = f.user2 OR p.username = f.user1)
WHERE f.user1 = '$sessionusername' OR f.user2 = '$sessionusername'
GROUP BY posts.id
ORDER BY id DESC

关于php - 我如何限制它以排除重复项?我的消息出现了两次,因为我与多个人成为 friend ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338048/

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