簡體   English   中英

從數據庫WHERE中選擇記錄,但至少

[英]Select records from database WHERE but at least

假設我有一張桌子

CREATE TABLE IF NOT EXISTS `Message` (
  `ConMsgID` int(11) NOT NULL AUTO_INCREMENT,
  `SenderID` int(11) DEFAULT NULL,
  `ReceiverID` int(11) DEFAULT NULL,
  `Text` text NOT NULL,
  `DateTime` datetime NOT NULL,
  `ReadStatus` tinyint(1) NOT NULL,
  `ReadDateTime` datetime DEFAULT NULL,
  PRIMARY KEY (`ConMsgID`),
  KEY `UserID` (`SenderID`),
  KEY `ReceiverID` (`ReceiverID`)
)

這是一個聊天消息表。 試想一下2個用戶正在互相聊天。 USER1和USER2

情況1:

USER1向USER2發送20條消息,並且USER2未讀取。 USER2打開對話時,他必須看到所有20條消息。

情況2:

USER2回復USER1並發送3條消息,但USER1未讀。 USER1打開對話后,他將看到兩個用戶的最后15條消息。

希望我現在明白了

相應地對數據進行排序,並將結果限制為15個記錄

SELECT * 
FROM msgs 
ORDER BY case when ReadStatus = 0 then 1 else 2 end asc,
         id desc
LIMIT 15

暫無
暫無

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

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