MySQL конвертирует тип столбца столбца из VARCHAR в INT

У меня есть таблица MySQL с столбцом VARCHAR (25), который я хочу преобразовать в INT. Все данные в столбце являются целыми или пробелами. Я пробовал эту команду:

ALTER TABLE ip MODIFY isp INT UNSIGNED NOT NULL;

К сожалению, поскольку некоторые из существующих строк пустые, я получаю эту ошибку:

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

Спасибо за помощь.

Ответ 1

перед изменением таблицы, попробуйте обновить свои значения.

Цель состоит в том, чтобы установить значение "0" в полях, где у вас есть пустые значения (которые не могут быть преобразованы в int)

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

Если isp не имеет значения NULL, вы можете удалить функцию coalesce.

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