MySQL 与 UNION 的奇怪行为

Jon*_*tra 5 mysql union

我注意到在 MySQL 中使用具有超过 16 列的 select 的多个联合时有非常奇怪的行为。我在一个复杂的查询中发现了这个问题,并将其简化以重现问题。我创建了dbfiddle来演示这个问题。确实很奇怪,第一个查询正在对列值进行左移,任何人都可以解释为什么会发生这种情况吗?

WITH test1
     AS (SELECT  1 AS a,  2 AS b,  3 AS c,  4 AS d,  5 AS e,
                 6 AS f,  7 AS g,  8 AS h,  9 AS i, 10 AS j,
                11 AS k, 12 AS l, 13 AS m, 14 AS n, 15 AS o,
                16 AS p, 17 AS q),
     test2
     AS (SELECT  1 AS a,  2 AS b,  3 AS c,  4 AS d,  5 AS e,
                 6 AS f,  7 AS g,  8 AS h,  9 AS i, 10 AS j,
                11 AS k, 12 AS l, 13 AS m, 14 AS n, 15 AS o,
                16 AS p, 17 AS q),
     unionTest
     AS (SELECT * FROM test1
         UNION
         SELECT * FROM test2) 
SELECT * FROM unionTest WHERE 1 = 2
UNION
SELECT * FROM unionTest WHERE 1 = 1; 
Run Code Online (Sandbox Code Playgroud)

退货

A C d e F G H j k n p q
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 号 0

我在 postgres 中尝试了同样的事情,效果很好。我没有看到任何逻辑解释为什么这在 MySQL 中不起作用。MySQL版本是8.0.28