На прошлой неделе мне нужно было изменить тип данных столбца таблицы MySQL с двойного на строку с массивными скобками вокруг предыдущего двойного значения.

Шаги для достижения этого были:

  1. Создайте новый столбец в таблице с новым типом данных.
  2. Переместите данные в новый столбец с помощью некоторых манипуляций со строками.
  3. Скиньте старую колонку.

В приведенном здесь примере имя нашей таблицы — «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;

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