首页 > 解决方案 > 如何在sql中使用联合查询的顺序

问题描述

请让我们知道如何在 sql union 查询中使用 order by 子句

我的查询

   select  receiverid as new_id, time from messenger where senderid= '".$_SESSION['id']."'
    UNION
  select senderid, time  from messenger where receiverid  = '".$_SESSION['id']."' 

我需要按时间排序

请帮助我们我已经尝试了很多方法但没有工作..提前谢谢你

标签: phpmysqlsqlunion

解决方案


这应该有效:

select receiverid as new_id
from messenger
where senderid= '".$_SESSION['id']."'
union
select senderid 
from messenger
where receiverid  = '".$_SESSION['id]
order by new_id;

更重要的是,您不需要union. 只需使用:

select distinct (case when receiverid = ? then senderid else receiverid) as id
from messenger m
where ? in (receiverid, senderid)
order by id;

这里最重要的部分是使用参数。不要将查询字符串与参数值混淆。


推荐阅读