我有一个带有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
感谢您的帮助。
答案 0 :(得分:13)
目标是在您具有空值(无法转换为int)的字段中设置“0”值
update ip
set isp = '0' where trim(coalesce(isp, '')) = '';
如果isp不可为空,则可以删除合并函数。
update ip
set isp = '0' where trim(isp) = '';