PHP MySQL独有的列,但使用最新的行

时间:2014-07-26 05:06:17

标签: php mysql sql

我在应用其他人对这个问题的答案时遇到了很多麻烦,所以我决定在这里发帖,看看你们中是否有人可以帮助我。我正在尝试从数据库中获取消息的唯一人员列表,其中字段为:

id,发件人,收件人,时间戳,邮件

问题是我想首先显示最新消息用户的唯一列表,但MySQL似乎在使其唯一的过程中选择最早添加的行。你能帮我逆转吗?这是我目前使用的查询。

SELECT DISTINCT recipient, sender FROM chat WHERE recipient = '$username' OR sender = '$username' ORDER BY timestamp DESC limit 50

非常感谢你!

1 个答案:

答案 0 :(得分:1)

Sadikhasan是正确的方式,但我认为你需要ORDER BY才能GROUP BY。另外,我希望得到一份独特的对话列表(发件人和收件人的独特组合),其中$username是其中一个分享者。然后你必须这样做:

SELECT * FROM (
SELECT recipient,
       sender
FROM chat
WHERE
recipient = '$username' OR
sender = '$username'
ORDER BY timestamp DESC LIMIT 50) AS tempTable
GROUP BY recipient, sender
相关问题