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,实际上,当我看我的答案时,这是非常明显的。说得好!