2014-02-14 68 views
12

我有一個帶有要轉換爲INT的VARCHAR(25)列的MySQL表。列中的所有數據都是整數或空格。我已經試過此命令:MySQL將列數據類型從VARCHAR轉換爲INT

ALTER TABLE ip MODIFY isp INT UNSIGNED NOT NULL; 

不幸的是,由於現有的一些行是空的,我得到這個錯誤:

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

感謝幫助。

+0

例如,您有現有記錄並且沒有默認值,例如0。簡而言之,它不能爲一個數字提供空的內容。 – Rolice

回答

11

在更改您的表之前,請嘗試更新您的值。

的目標是在,你必須空值(其不能被轉換爲int)

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

字段設置爲「0」值。如果ISP不爲空的,則可以刪除該聚結功能。

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

謝謝,這個答案完美。 –

+2

@BrianG所以不要猶豫,接受它;) –

相關問題