ORDER BY 在 MySQL 中无法与 UNION 一起正常工作

ORDER BY not working properly with UNION in MySQL

我有 2 个表 t1 和 t2 如下

我想 select 使用 UNION 对两个表的结果进行排序并按数量列排序。我写的查询是

(SELECT * FROM t1)
UNION ALL
(SELECT * FROM t2)
ORDER BY qty ASC;

这给了我以下结果

有人能告诉我这里出了什么问题吗?根据查询,我应该按升序对 qty 列进行排序。我也试过

(SELECT * FROM t1
UNION ALL
SELECT * FROM t2)
ORDER BY qty ASC;

也不走运。如果我使用 id 或 item 进行排序,它就可以正常工作。这真是令人沮丧。请帮忙。

可能与 Sorting varchar field numerically in MySQL

重复

尝试

(SELECT * FROM t1
UNION ALL
SELECT * FROM t2)
ORDER BY CAST(qty as SIGNED INTEGER) ASC;