php mysql从数据库中选择和排序消息

时间:2015-09-18 20:48:51

标签: php mysql

如果尝试选择数据库中的所有邮件并将其显示给我的网站用户。

消息正在进行选择和分组,但是每组user_id中的最近消息消息始终是发送的第一条消息。

我目前的代码是:

$result_messages = mysqli_query($con, "SELECT * FROM users_messages WHERE message_sender='". $_SESSION["login_id"] ."' OR message_receiver='". $_SESSION["login_id"] ."' GROUP BY message_receiver ORDER BY message_id DESC") 
    or die(mysqli_error($con));

这是用户发送的第一条正在显示的消息,但我希望在用户组中选择最近的消息。

我收到了所有用户的消息,用户的行按最近的对话排序。

但在最近的对话中,它选择了对话中发送的第一条消息

2 个答案:

答案 0 :(得分:1)

新答案: 你需要的是一个像这样的相关子查询:

SELECT um.* FROM user_messages um 
WHERE um.message_id IN 
(
   (SELECT MAX(message_id) FROM users_messages WHERE 
    message_sender='". $_SESSION["login_id"] ."' OR 
    message_receiver='". $_SESSION["login_id"] ."' GROUP BY message_receiver)
)
ORDER BY um.message_id DESC

答案 1 :(得分:0)

按ID排序,每次插入都会递增。