为什么sql union可以在mysql中合并两个数据类型不同的列?

mfpqipee  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(626)

我已经有了branch\u id(type int),client\u name(type 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

谢谢你的关注

lh80um4z

lh80um4z1#

mysql会在必要时自动转换数据类型。因此,您的查询被视为:

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

相关问题