MySQL:无法对联合的一侧进行排序

标签 mysql sql

我有这样的查询:

(SELECT * FROM something WHERE ...) UNION (SELECT * FROM something WHERE ...)

因为我希望第一个 SELECT 的结果排在最前面。但是,第二部分以相反的顺序出现。我不能简单地对整个查询进行排序,因为它会将我需要的第一个 SELECT 从顶部推到底部......所以我想做这样的事情:

(SELECT * FROM something WHERE ...) UNION (SELECT * FROM something WHERE ...  ORDER BY timestamp DESC)

但是这是行不通的,ORDER BY 被完全忽略了;我通过插入乱码对此进行了测试,ORDER BY dosaif30h 仍然有效...一种解决方案是进行两个单独的查询,但我更愿意将其合并处理。

最佳答案

SELECT * FROM something WHERE ... UNION SELECT * FROM (SELECT * FROM something WHERE ...  ORDER BY timestamp DESC)a

关于MySQL:无法对联合的一侧进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934851/

相关文章:

php - 遍历文件夹中的 CSV 文件并使用 PHP 将数据加载到 MySQL

SQL:如何选择共享 NAME 字段的多个 COUNT 值?

asp.net - SQL WHERE 语句 100% 不起作用

php - 使用for循环在php中生成sql查询

mysql - 从表格宽度日期字段获取每周分数

mysql - ohlc(开盘价、最高价、最低价和收盘价)在不同时间内部(1,5,15,60,120)分钟,1天甚至没有记录的两个日期范围之间记录

sql - 查找具有相同值的行 PostgreSQL

php - 选择列 FROM table_name WHERE username=$_SESSION ['username' ] 不起作用

php - 只更新数据库中的一个表

php - MYSQLi SELECT 获取对象