簡體   English   中英

需要MySQL查詢消息功能,首先顯示按用戶分組的最新消息(發送或接收)

[英]Need MySQL query for messages function showing newest messages (sent or received) first, grouped by user

我正在嘗試為PHP / MySQL中的消息傳遞系統創建“對話概述”頁面。 基本上,它看起來像iPhone的Text / SMS概述頁面。 由您發送或接收郵件的其他用戶分組的郵件。 它應該首先顯示具有最新消息(發送或接收)的會話(降序)

messages table

id | sender_id | receiver_id | datetime | message

棘手的問題。 嘗試以下解決方案

SELECT id,sender_id,receiver_id,
CASE WHEN sender_id >= receiver_id THEN 
  CONCAT(CAST(sender_id AS CHAR),'|', CAST(receiver_id AS CHAR))
ELSE
  CONCAT(CAST(receiver_id AS CHAR),'|' CAST(sender_id AS CHAR))
END AS participants ,
`datetime`,message from messages 
ORDER BY participants,`datetime`

這樣,您就有了一個額外的計算字段,該字段代表sender_id-receiver_id關系,您需要將兩者的組合作為一個實體。 在某些情況下,按計算字段的排序可能會變慢。 您可能需要考慮在表中創建一個實際的額外字段來存儲參與者信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM