Как в MySQL изменить тип столбца c TEXT на INTEGER с корректным переводом текста в числа?
В таблице есть столбец типа TEXT в котором записаны целые числа, но с разделителем тысяч, т.е. не 1234, а 1,234.
Я хочу сделать столбец типа INTEGER, подскажите как это можно сделать наиболее правильным путем?
По идее я могу сделать в 4 действия:
- создать новый столбец типа INTEGER
- записать в него данные из столбца типа TEXT с использованием CAST и REPLACE, чтоб убрать запятые
- удалить старый столбец
- переименовать новый
Но можно ли всё сделать проще?
Ответы (1 шт):
Автор решения: Evgeniy Leonidov
→ Ссылка
Всё можно сделать как Вы написали. Либо чуток намудрить, предварительно забекапив табличку))), с MODIFY COLUMN + CAST REPLACE
ALTER TABLE table_name MODIFY COLUMN column_name INTEGER USING CAST(REPLACE(column_name, ',', '') AS INTEGER);