我有一个这样的查询:
SELECT message_text
FROM messages
WHERE message_date >= '$connection_time'
很简单。这使我可以检索自连接时间以来发布的消息。
但我还需要检索在该连接时间之前发布的最后 15 条消息。(最好是用一个查询来完成这一切)。
我该怎么做?
PS:我考虑获取检索到的第一条消息的 id 并减去 15,但它仅在 id 是连续的情况下才有效,但情况并非总是如此。
谢谢你。
将以下查询加入到您现有的查询中UNION
:
SELECT message_text
FROM messages
WHERE message_date < '$connection_time'
ORDER BY message_date DESC
LIMIT 15
顺便说一句,我真的真的很希望你绝对确定 $connection_time
已经被剥夺了任何潜在的 SQL 注入攻击(如果你不知道这意味着什么,去阅读Bobby Tables)。您应该使用准备好的语句,将变量作为参数传递给其中,这些参数不会被 SQL 评估。