MySQL:派生表的顺序被忘记了

MySQL:派生表的顺序被忘记了,mysql,derived,Mysql,Derived,从昨天到今年6月的某个时候,我的主机提供商必须更新他们的MySQL,因为下面的查询现在产生的结果与以前不同 我使用查询作为联合的一部分,但我只复制/粘贴了不起作用的部分——如果您想知道为什么我使用派生表的话 Select * from (SELECT c.SeatNum FROM signups c where c.SeatNum <= 5 ORDER BY c.SeatNum asc) d1 现在它给了我: 2 5 1 3 4 如果我只是执行一个“从注册中选择c.SeatNum,其中

从昨天到今年6月的某个时候,我的主机提供商必须更新他们的MySQL,因为下面的查询现在产生的结果与以前不同

我使用查询作为联合的一部分,但我只复制/粘贴了不起作用的部分——如果您想知道为什么我使用派生表的话

Select * from (SELECT c.SeatNum FROM signups c where c.SeatNum <= 5 ORDER BY c.SeatNum asc) d1
现在它给了我:

2
5
1
3
4

如果我只是执行一个
“从注册中选择c.SeatNum,其中c.SeatNum检查您的表排序规则。排序规则类型将影响您的排序结果。

我通常使用utf8\u general\u ci的排序规则。

“我能做些什么来防止它”-显然,将order by放在外部选择上。order by需要放在内部选择上,因为它是联合的一部分,如果没有指定顺序,我不想影响联合其余部分的顺序(外部查询就是这样)然后没有顺序。你以前的结果是(或多或少)侥幸。考虑添加一个哑值(例如,选择1作为哑,C.SeaTynNm……)到子查询(或外部查询),这样你就可以在稍后有一些东西(当哑=1然后SeaTynNm……的情况下)。使用虚拟值的好主意!谢谢。这没有帮助。我不明白的是,为什么内部选择的顺序by工作得很好,但是外部选择却把它搞砸了。
2
5
1
3
4
1
2
3
4
5