Mysql 转换选择结果中的列类型
这是我的桌子:Mysql 转换选择结果中的列类型,mysql,Mysql,这是我的桌子: id| name | address | more_info _______________________________ 0 | John | NY | infoa 1 | Bill | PH | infob 2 | Bob | KS | infoc 其中id类型为BIGINT 我有一个疑问: SELECT * FROM myTable BIGINT对于某些应用程序来说太长了,因此我想以VARCHAR的形式检索id。我是否可以将id
id| name | address | more_info
_______________________________
0 | John | NY | infoa
1 | Bill | PH | infob
2 | Bob | KS | infoc
其中id
类型为BIGINT
我有一个疑问:
SELECT * FROM myTable
BIGINT对于某些应用程序来说太长了,因此我想以VARCHAR
的形式检索id
。我是否可以将id
强制转换为结果集中的VARCHAR
,而不必命名要在结果集中检索的每个特定列?也就是说,我想保留实际的查询SELECT*
,而不必输入选择id、姓名、地址等。简单回答:否。
在表和预期结果之间需要一些转换阶段/层。您可以使用将整数强制转换为varchar的视图,但由于您不愿意将耦合引入select
,我打赌该视图会更糟
另一方面,根据语言的不同,在应用程序端可能会有机会
编辑:
如果您可以生活在有一个附加列和一个要忽略的列(原始id)的环境中,那么这可能会有所帮助:
select CAST(id as CHAR(50)) as idAsVarchar, t.* FROM
(
select * from your_table
) as t;
可能重复我不介意引入耦合(我想),我只是不想命名我想要提取的每个列,除了cast列,因为我有大约40个。这是可以实现的吗?成功了,谢谢!但是我必须在查询的末尾添加作为t
,以便it工作;)考虑编辑你的答案。子查询是多余的<代码>选择*,CAST(ID为char(50)),从Youl表作品中的IDASVARCHAR,实际上,当我看我的答案时,这是非常明显的。说得好!