【发布时间】:2017-03-21 00:09:08
【问题描述】:
早安,
我对“简单”查询有疑问。当我在不同的服务器上执行它时,我得到了我需要的其他结果集..
我尝试通过 export->import 重新导入所有“表”,但仍然无法正常工作。
哪里有问题? MariaDB 中可能有问题吗?
数据库版本:
- 5.6.27 - MySQL 社区服务器 (GPL),客户端:libmysql 5.0.11-dev
- 10.0.25-MariaDB-0+deb8u1 - (Debian),客户端:libmysql 5.5.49
两者都在 MyISAM 引擎上运行。
查询:
SELECT id, datum, ordinary FROM (SELECT *, 0 as `ordinary` FROM
`user_todolist` WHERE `done` = '0'
AND `deleted` = '0' AND `id_uzivatel` = '1' ORDER BY `datum` ASC) AS a1
UNION
SELECT id, datum, ordinary FROM (SELECT *, 1 as `ordinary` FROM
`user_todolist` WHERE `done` = '1' AND `deleted` = '0' AND
`id_uzivatel` = '1' ORDER BY `datum` DESC) AS a2
ORDER BY `ordinary`
结果(左侧预期,右侧无效):
SQL 解释(预期顶部,机器人无效)
【问题讨论】:
-
为什么是
ORDER BY datum ASC然后是ORDER BY datum DESC?尝试将所有Order By条件分别应用于两个 select 语句,而不是整个 union select。 -
它正在排序“任务” - 第一部分从“最近”排序,第二部分是关闭的任务,需要从“最新”排序。我试图通过一个 OrderBy 来做到这一点——但理想情况下我只需要一个问题——但两个排序都在同一列中。最终结果集按所需顺序显示在一个分页表中。
标签: mysql database union mariadb