为什么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;
我已经有 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;