mysql - 如何在同一列中创建2个order by

标签 mysql sql sql-order-by union

我想创建 sql req 以在同一列中两次使用 order by 我尝试使用此示例

SELECT  titleEN, smallDescriptionEN, StartDate, EndDate
            FROM event
            WHERE EndDate > NOW()
            ORDER BY StartDate ASC

UNION

SELECT  titleEN, smallDescriptionEN, StartDate, EndDate
                FROM event
                WHERE EndDate < NOW()
                ORDER BY StartDate DESC

但是sql错误表明UNION和ORDER BY的使用不正确

#1221 - Incorrect usage of UNION and ORDER BY 

最佳答案

末尾的一个 Order By 足以对完整的结果集进行排序

SELECT titleEN,
       smallDescriptionEN,
       StartDate,
       EndDate
FROM   event
WHERE  EndDate < Now()
UNION
SELECT titleEN,
       smallDescriptionEN,
       StartDate,
       EndDate
FROM   event
WHERE  EndDate > Now()
ORDER  BY StartDate DESC; 

关于mysql - 如何在同一列中创建2个order by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31288003/

相关文章:

php - 如何防止零作为值记录在数据库中

java - SQL-将数字字符串转换为整数列表

mysql - 如何检索存储在多行中的 "dynamic"属性作为正常记录?

mysql - 通过 mariadb 中的用户变量通过 order by 和 row_number 进行排序

mysql - 根据 OR 子句条件查找 SQL 中的重复项

MySQL 使用 sum 和 left join 将结果加倍

mysql - 如何在sql中检查当前位置是否在您的服务范围内?

sql - 仅主键和主键约束有什么区别?

mysql - 如何让 MySQL 5.5 中的工作查询在 MySQL 5.7 中工作?

mysql - 使用 GROUP BY 和 ORDER BY 时,如何正确索引选择多个字段的查询?