0

我正在尝试创建您在 android 手机上看到的 SMS 消息。

在我的 MySQL 数据库中,我有一个表用于跟踪消息,就像来自电话的 SMS。

该表是

id                  (the message id)
from_member_id      (the id of the member who sent this message)
to_member_id        (the id of the member who the message was sent to)
date sent           (the date it was sent)
active              (if this message is deleted or active)
text                (the text)

当用户登录时,他们需要下载他们发送或发送到的所有消息。

我可以创建一个 sql 语句,基本上说“给我所有我的 id 等于 from 或 to id 的记录”,但我还想做的是在我的 android 上显示文本时以易于处理的方式对其进行排序应用程序。

基本上我想对它进行排序,使其像排序一样,以便不是你的 id (将是fromor to)是它的排序依据。此外,它应该按日期或最近发送或接收的内容排序。

因此,例如,如果我的 ID 是 5,那么我想接收类似的数据

From To Date
5     6 july 28
6     5 july 7
6     5 july 7

5     2 july 26
5     2 july 26
2     5 july 26

因此,它也按日期排序,其中用于比较的日期记录将是每组中最新的。

我不确定我的解释是否正确,所以如果您需要我更具体一些,请告诉我。

谢谢。

4

2 回答 2

1

所以本质上你是在尝试按“对话目标”分组,然后按日期分组。

我认为您可能需要一个案例语句来填充您可以像这样订购的人工字段:

SELECT
  from_member_id,
  to_member_id,
  (CASE WHEN from_member_id = ? THEN to_member_id ELSE from_member_id END CASE) AS conversation_member_id,
  date_sent
FROM table
WHERE from_member_id = ?
OR to_member_id = ?
ORDER BY conversation_member_id DESC, date_sent DESC

这当然?是您要查询的 id。

于 2013-08-09T19:06:15.823 回答
0
ORDER BY IF(`from`=yourid, `to`, `from`) DESC, date asc ;

这应该可以解决您的问题。您还可以按日期添加订单

于 2013-08-09T19:03:46.030 回答