如何获取用户之间对话的最新消息? (聊天系统)

I am building a private messages system.

I want to get the latest message as per conversation time. Now it is showing the messages in chronological order but I want it in reverse-chronological manner, latest message on top and so on.

Table

SELECT `messages`.`id`,
    `messages`.`sender`,
    `messages`.`receiver`,
    `messages`.`message`,
    `messages`.`datetime`,
    `messages`.`classifield_id`
FROM `augl`.`messages`;

Function

public function getMessageList()
{
    $current_user = $this->accounts->getUserId();

    $query = $this->db->query("SELECT * FROM(
                                SELECT id, LEAST(receiver) as receiver, LEAST(sender) AS sender, message, datetime, classifield_id 
        FROM messages
        WHERE sender='$current_user' OR receiver = '$current_user' 
        Group By (if(sender > receiver,  sender, receiver))
               , (if(sender > receiver,  receiver, sender))
        ) 
            as id");

    $result =  $query->result();

    //var_dump($result); die;

    foreach ($result as $messages )
    {
        $return[$messages->id] = $messages;

        if ($messages->receiver === $current_user)
        {
            $return[$messages->id]->userr = $this->accounts->getUsername($messages->sender);
            $return[$messages->id]->userid = $messages->sender;
            //$return[$messages->id]->message = $messages->message;

        }
        else
        {
            $return[$messages->id]->userr = $this->accounts->getUsername($messages->receiver);
            $return[$messages->id]->userid = $messages->receiver;
            //$return[$messages->id]->message = $messages->message;
        }


    }

    return $return;
}

It looks like if you change "LEAST" to "GREATEST" that may fix it.

See the tutorial in the MySQL Manual. you want GROUPWISE MAXIMUM obviously MIN and not MAX for your needs.