Как в MySQL изменить тип столбца c TEXT на INTEGER с корректным переводом текста в числа?

Рейтинг: 3Ответов: 1Опубликовано: 12.03.2023

В таблице есть столбец типа TEXT в котором записаны целые числа, но с разделителем тысяч, т.е. не 1234, а 1,234.

Я хочу сделать столбец типа INTEGER, подскажите как это можно сделать наиболее правильным путем?

По идее я могу сделать в 4 действия:

  1. создать новый столбец типа INTEGER
  2. записать в него данные из столбца типа TEXT с использованием CAST и REPLACE, чтоб убрать запятые
  3. удалить старый столбец
  4. переименовать новый

Но можно ли всё сделать проще?

Ответы

▲ -1

Всё можно сделать как Вы написали. Либо чуток намудрить, предварительно забекапив табличку))), с MODIFY COLUMN + CAST REPLACE

ALTER TABLE table_name MODIFY COLUMN column_name INTEGER USING CAST(REPLACE(column_name, ',', '') AS INTEGER);