反向搜索查询——从高到低搜索

Reverse search query - search from high to low

我想获取具有给定参数的消息:

select * 
  from chat.messages 
 where senderId = 1 
   and receiverId = 0 
    or senderId = 0 
   and receiverId = 1 
 order 
    by id ASC 
 LIMIT 0,10

我不想从最低的 ID 开始搜索,而是想反转它并从最高的 ID 开始,以便获得最新的。

您只想要降序排序吗?

select * 
from chat.messages 
where (senderid = 1 and receiverid = 0) 
   or (senderid = 0 and receiverid = 1) 
order by id desc limit 0,10

请注意,我还修复了您的 where 子句中的逻辑缺陷问题:and 的优先级高于 or,因此需要包围 or 条件带括号。否则你的 where 子句等同于:

where senderid = 1 and (receiverid = 0 or senderid = 0) and receiverid = 1

...这显然不是您想要的。

按降序排列

select * from chat.messages where senderId = 1 and receiverId = 0 or senderId = 0 and receiverId = 1 order by id DESC LIMIT 0,10