mysql - UNION 在 ORDER BY 和 LIMIT 之后

标签 mysql sql sql-order-by union

我的目标是执行两个不同的查询,然后将它们组合起来。
我的代码是:

SELECT * FROM some tables WHERE ... ORDER BY field1 LIMIT 0,1 
UNION   
SELECT * FROM some tables WHERE ...

我收到以下错误:

#1221 - Incorrect usage of UNION and ORDER BY

重要的是 ORDER BY 仅用于第一个查询。我该如何执行此任务?

最佳答案

您可以使用括号来允许对单个查询使用 ORDER/LIMIT:

(SELECT * FROM some tables WHERE ... ORDER BY field1 LIMIT 0, 1)
UNION   
(SELECT * FROM some tables WHERE ...)
ORDER BY 1   /* optional -- applies to the UNIONed result */
LIMIT 0, 100 /* optional -- applies to the UNIONed result */

关于mysql - UNION 在 ORDER BY 和 LIMIT 之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198016/

相关文章:

mysql - 针对数百万阵列 IDS 优化 Rails IN 查询

mysql - 更新mysql大表挂太时间

sql - PostgreSQL 无法聚合来自多个表的数据

mysql - 订购者: "count (columns not null)"

sql - 按使用 case 表达式内的别名的计算列进行排序

mysql - 我想显示学生ID,谁拥有以上5个单元?

php - 在 php 中创建与 MySQL 数据对应的复选框

sql - 在 SQL 中排序

SQL COUNT 溢出

c# - 使用 linq 和自定义排序规则对列表列表进行排序