Mysql 按查询嵌套的订单在不同的机器上显示不同的结果

Mysql 按查询嵌套的订单在不同的机器上显示不同的结果,mysql,Mysql,我有这样的疑问: SELECT * FROM ( SELECT * FROM ( SELECT 1 AS a,1 AS b UNION SELECT 2 AS a,1 AS b UNION SELECT 3 AS a,2 AS b UNION SELECT 3 AS a,1 AS b ) b ORDER BY b.b DESC ) c 在不同的机器上显示不同的结果 在机器A上: A

我有这样的疑问:

SELECT * FROM (
    SELECT * FROM (
       SELECT 1 AS a,1 AS b
       UNION
       SELECT 2 AS a,1 AS b
       UNION
       SELECT 3 AS a,2 AS b
       UNION
       SELECT 3 AS a,1 AS b
    ) b ORDER BY b.b DESC
) c
在不同的机器上显示不同的结果

在机器A上:

A  |  B
--------
3  |  2
1  |  1
2  |  1
3  |  1
在机器B上:

A  |  B
--------
1  |  1
2  |  1
3  |  2
3  |  1
我希望所有的机器都能像机器A一样得到结果。这怎么可能发生呢?mysql服务器上是否有任何设置使所有机器都像机器A一样获得结果

正如您所写的那样,内部ORDER BY毫无意义,只有外部查询中的ORDER BY才会被接受。此外,我甚至看不到子查询的意义,因此只需使用以下命令:

SELECT * FROM (
    SELECT 1 AS a, 1 AS b
    UNION
    SELECT 2, 1
    UNION
    SELECT 3, 2
    UNION
    SELECT 3, 1
) t
ORDER BY b DESC;
SQL表是根据无序的记录集建模的,通常没有内部顺序。您所做的内部顺序不会保持不变,MySQL可以在外部查询中自由返回它想要的任何顺序,因为您没有在那里使用ORDER BY