为什么SQL UNION 可以合并MySQL 中数据类型不同的两列?

Why SQL UNION can combine two columns which have different data type in MySQL?

我已经有 branch_id(类型 INT),client_name(类型 VARCHAR (30))。

据我所知,当我们使用 UNION 运算符时,列也必须具有相似的数据类型。问题是为什么我可以将它与具有不同数据类型的两列结合起来,如下面的代码但仍然没有任何错误? (DBSM:MySQL,SQL编辑:PopSQL)

代码:

SELECT client_name
FROM client
UNION
SELECT branch_id
FROM branch_supplier;

结果:

client_name
--------------------
Dunmore Highschool
Lackawana Country
FedEx
John Daly Law, LLC
Scranton Whitepages
Times Newspaper
1
2
3
4

感谢您的关注

MySQL 必要时自动转换数据类型。所以你的查询被视为你写了:

SELECT client_name
FROM client
UNION
SELECT CAST(branch_id AS CHAR)
FROM branch_supplier;