我有一個聊天系統,我想要顯示最近一小時內發送的消息,但無論如何顯示最後20條消息很久以前他們被送去了。如果在過去一小時內沒有記錄,可獲取上一小時內的記錄或最後20項內容
有沒有一種方法可以做到這一點in.a SQL查詢?
CREATE TABLE IF NOT EXISTS `chat` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` INT(11) UNSIGNED NOT NULL,
`item_id` INT(11) UNSIGNED NOT NULL,
`message` TEXT NOT NULL,
`recipient` INT(11) NOT NULL DEFAULT '0',
`type` ENUM ('message', 'announcement') NOT NULL DEFAULT 'message',
`channel` ENUM ('general', 'private') NOT NULL DEFAULT 'general',
`posted` DATETIME NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `posted` (`posted`),
KEY `type` (`type`),
KEY `channel` (`channel`),
KEY `recipient` (`recipient`)
)
ENGINE = MyISAM
DEFAULT CHARSET = `utf8`
AUTO_INCREMENT = 2;
顯示錶格的模式。 –
@SloanThrasher對不起,添加了模式。只是沒想到這會有很大的幫助。 – Draven
一個簡單的'ORDER BY posted',限制爲20會做 –