Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按顺序从数据库中读取消息_Mysql - Fatal编程技术网

Mysql 按顺序从数据库中读取消息

Mysql 按顺序从数据库中读取消息,mysql,Mysql,我目前正在构建一个对话式的消息传递系统,需要帮助确定从数据库读取消息的顺序 数据库中消息表的数据库结构如下: messageid |内容|消息|从|消息|到|查看|删除|发送|日期 我想按发送顺序读出消息,但如果发送多条消息而没有回复,则不重复用户名 因此,如果有3条消息从发送到同一消息,则会显示它们,然后会出现任何响应。但正如我所说的,如果同一个人发了3条没有回复的消息,我会先显示用户名,然后再显示内容 我有下面的查询,它提取发送给用户的消息 SELECT f.username, t.user

我目前正在构建一个对话式的消息传递系统,需要帮助确定从数据库读取消息的顺序

数据库中消息表的数据库结构如下:

messageid |内容|消息|从|消息|到|查看|删除|发送|日期

我想按发送顺序读出消息,但如果发送多条消息而没有回复,则不重复用户名

因此,如果有3条消息从发送到同一消息,则会显示它们,然后会出现任何响应。但正如我所说的,如果同一个人发了3条没有回复的消息,我会先显示用户名,然后再显示内容

我有下面的查询,它提取发送给用户的消息

SELECT f.username, t.username, m.content, m.sent_date FROM message m 
INNER JOIN user f ON f.userid = m.message_from
INNER JOIN user t ON t.userid = m.message_to
WHERE f.username = :username
我已经尽力解释我需要什么,不知道我有多清楚


谢谢。

我决定在显示逻辑中显示用户名,而不是数据库逻辑。(即,在HTML生成脚本中)


为了确保结果的顺序正确,请在SQL语句的末尾使用m.sent\u date ASC排序。

+1:这是一个表示问题,不应强迫DBMS对表示进行排序。我将使用PHP循环并排序用户名逻辑,但使用初始查询,我是否选择“消息来源”或“消息收件人”是否等于当前用户,以及其中任一字段是否等于与之对话的用户?这是获得双向消息的唯一方法?使用这些
内部连接可能会使事情过于复杂!这样行吗<代码>选择DISTINCT*FROM messages,其中message_FROM=:username或message_to=:username ORDER BY sent_date ASC(PDO风格的查询)