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