На прошлой неделе мне нужно было изменить тип данных столбца таблицы MySQL с двойного на строку с массивными скобками вокруг предыдущего двойного значения.
Шаги для достижения этого были:
- Создайте новый столбец в таблице с новым типом данных.
- Переместите данные в новый столбец с помощью некоторых манипуляций со строками.
- Скиньте старую колонку.
В приведенном здесь примере имя нашей таблицы — «mesa» со столбцом «numbers» с типом данных double.
Шаг 1, создайте новый столбец:
ALTER TABLE mesa ADD COLUMN number_arrays VARCHAR;
Чтобы преобразовать двойники в строку, приведите их к символам, объедините их с нужными модификациями строк и поместите их в новый столбец.
Шаг 2, переместите данные и приведите их к строке.
UPDATE mesa SET number_arrays = CONCAT(‘[‘ , CAST(numbers AS CHAR)+ , ‘ ]’);
Теперь столбец number_array содержит данные вида «[2]» или «[54]».
Шаг 3, удалите старый столбец.
ALTER TABLE mesa DROP COLUMN numbers;
Теперь наши данные, которые были сохранены как двойники, хранятся как строки, сохранив их значения с помощью некоторых манипуляций со строками.