如何转换MySQL字段类型?

如何转换MySQL字段类型?,mysql,fieldtype,Mysql,Fieldtype,我已经遇到了convert函数。据我所知,基本语法是: select convert(columnName, targetFieldType) as newColumnName from table; 运行这个命令不会给我任何错误,但是当我检查数据类型时,它们是不变的。即使我使用commit;数据保持不变。特别是,我正在尝试将long类型的数据转换为varchar。有什么想法吗?给定的SELECT查询将返回新类型中的值,但不会更改数据库中表的字段类型 如果要永久更改磁盘上的表,请使用: ALT

我已经遇到了convert函数。据我所知,基本语法是:

select convert(columnName, targetFieldType) as newColumnName from table;

运行这个命令不会给我任何错误,但是当我检查数据类型时,它们是不变的。即使我使用commit;数据保持不变。特别是,我正在尝试将long类型的数据转换为varchar。有什么想法吗?

给定的
SELECT
查询将返回新类型中的值,但不会更改数据库中表的字段类型

如果要永久更改磁盘上的表,请使用:

ALTER TABLE table CHANGE columnName newColumnName targetFieldType NOT NULL;
请注意,对于大型表,这可能需要一段时间,因为MySQL会重写整个表

注意:如果还希望在此列中允许空值,请删除
notnull
限定符


有关更多信息,请参阅。

注意,使用CONCAT可以轻松地将任何内容转换为字符类型:

select concat(columnName,'') as newColumnName from table;
转换所需的实际语法如下所示:

select convert(columnName, char) as newColumnName from table;
没有可用于转换或强制转换的varchar类型,但是在不提供字段长度的情况下强制转换为char应该是您想要的结果