MySQL将列数据类型从VARCHAR转换为INT

时间:2014-02-14 16:15:00

标签: mysql

我有一个带有VARCHAR(25)列的MySQL表,我希望将其转换为INT。列中的所有数据都是整数或空白。我试过这个命令:

ALTER TABLE ip MODIFY isp INT UNSIGNED NOT NULL;

不幸的是,由于某些现有行为空,我收到此错误:

ERROR 1366 (HY000): Incorrect integer value: '' for column 'isp' at row 2

感谢您的帮助。

1 个答案:

答案 0 :(得分:13)

在更改表格之前,请尝试更新您的值。

目标是在您具有空值(无法转换为int)的字段中设置“0”值

update ip
set isp = '0' where trim(coalesce(isp, '')) = '';

如果isp不可为空,则可以删除合并函数。

update ip 
set isp = '0' where trim(isp) = '';