如何转换MySQL字段类型?

时间:2009-11-16 14:49:38

标签: mysql fieldtype

我已经遇到过转换功能。据我了解,基本语法是:

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

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

2 个答案:

答案 0 :(得分:4)

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

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

ALTER TABLE table CHANGE columnName newColumnName targetFieldType NOT NULL;

请注意,对于大型表,这可能需要一段时间,因为MySQL会重写整个表。

注意:如果您还想在此列中允许NULL值,请删除NOT NULL限定符。

有关详细信息,请参阅ALTER TABLE Syntax in MySQL Reference Manual

答案 1 :(得分:1)

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

select concat(columnName,'') as newColumnName from table;

CONVERT的实际语法如下:

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

CONVERT或CAST没有可用的varchar类型,但是在不给出字段长度的情况下转换为char应该是您想要的结果。