php - 如何在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']."'
我需要按时间排序
请帮助我们我已经尝试了很多方法但没有工作..提前谢谢你
解决方案
这应该有效:
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;
这里最重要的部分是使用参数。不要将查询字符串与参数值混淆。
推荐阅读
- javafx - JavaFx:一旦到达内部滚动视图的末尾,就启用外部滚动视图
- kotlin - 获取对 Ktor 位置的请求导致未处理的请求
- node.js - 通过 post Handler 发送数据导致“无法设置标题”
- javascript - 如何根据页面 url react js 更改背景?
- django - Django 媒体 url 与 digitalocean 空间不匹配
- visual-studio-code - Julia:将代码发送到顶部的 Vscode 扩展?
- azure-keyvault - ARM KeyVault 访问策略有条件添加
- javascript - React-native:在渲染中显示文本(返回)有条件
- c# - Graphics.DrawImage 可以绘制 YV12 DIB 吗?
- reactjs - 反应设置间隔以更改报价