[英]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.