Alterar tabela usando sub selecionar

Eu tenho duas mesas. uma que é uma tabela de informações de campo e a outra é uma tabela de dados de campo.

por padrão, todas as colunas da tabela de dados de campo são configuradas para campos de texto de algum tipo (varchar, text, etc)

O que eu gostaria de fazer é isso. Em vez de criar a consulta manual ALTER TABLE:

ALTER TABLE `field_data` 
CHANGE COLUMN `field_id_2` `field_id_2` decimal NOT NULL, 
CHANGE COLUMN `field_id_3` `field_id_3` decimal NOT NULL,
CHANGE COLUMN `field_id_22` `field_id_22` decimal NOT NULL,
CHANGE COLUMN `field_id_23` `field_id_23` decimal NOT NULL,
CHANGE COLUMN `field_id_25` `field_id_25` decimal NOT NULL,
CHANGE COLUMN `field_id_27` `field_id_27` decimal NOT NULL,
CHANGE COLUMN `field_id_30` `field_id_30` decimal NOT NULL,
CHANGE COLUMN `field_id_66` `field_id_66` decimal NOT NULL,
CHANGE COLUMN `field_id_72` `field_id_72` decimal NOT NULL;

Eu gostaria de escrever uma consulta ALTER TABLE dinâmica com base na tabela field_info, agora eu recebo esses IDs de campo fazendo esta consulta:

SELECT field_id FROM `field_info` WHERE `field_type` = 'a_decimal_field'

que retorna os valores: 2, 3, 22, 23, etc.

Então, eu precisaria de uma consulta (se possível) que altera a tabela com base na sub seleção concatenar field_id_ para o resultado de cada sub seleção e altera o tipo dessa coluna para decimal.

Eu sei que posso fazer isso em php, construindo a consulta, mas estou procurando especificamente uma solução de mysql puro, se possível.