• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

用户和消息:如何通过发件人,收件人或两者订购?

sql 来源:ziiweb 3次浏览

我有两个表像这样:用户和消息:如何通过发件人,收件人或两者订购?

USER 
id 
name 

MESSAGE 
id 
sender_id 
receiver_id 

如你想,有两个这些表之间的一个一对多的关系。

在我的后端,我有过滤器来搜索与用户关联的消息。在按下“过滤器”后,我应该显示与他/她相关的消息列表,显示一列指定该人是发送者还是接收者(或甚至两者)的消息在名为“发送者/接收者”的列中。

我的疑问:我也有可能在“发送者/接收者”列的基础上订购这个列表。您知道,按“发件人/接收人”列标题将首先显示用户是“发件人”的消息,然后是“两者”,最后是“接收者”的位置。再次按下将显示用户是“Receiver”的消息,然后“Both”和“Sender”在哪里。

什么样的SQL可以做那种排序?

注:我提出的模式不是强制性的。如果有必要提出另一个。

===========解决方案如下:

ORDER 
    BY CASE WHEN sender_id = [user-ID of interest] 
      AND receiver_id = [user-ID of interest] 
      THEN 2  -- is both sender & receiver 
      WHEN sender_id = [user-ID of interest] 
      THEN 1  -- is only sender 
      ELSE 3  -- is only receiver 
     END, 
     [other conditions to sort by] 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)