Bom dia.
Estou tentando fazer um "For Select" em MySql porém não estou entendendo o que esta errado no meu comando, poderiam me ajudar por favor ?
Eu tenho uma tabela no qual é salvo as informações de respostas todas na mesma coluna referenciando o ID da tabela de pergunta... no entanto eu preciso que cada resposta seja exibida em sua respectiva coluna de pergunta. Desta forma estou tentando criar uma procedure que execute um for Select e para cada registro retornado deve ser salvo em uma variável diferente... para isso utilizei um contador para saber em qual variável deve ser salvo a informação retornada.
Segue imagem da Tabela no qual preciso executar o For Select:
Segue minha procedure:
DROP procedure IF EXISTS `retorna_preco_concorrente`;
DELIMITER $$
CREATE DEFINER=`glpi`@`localhost` PROCEDURE `retorna_preco_concorrente`(
IN
nome_concorrente VARCHAR(100),
familia_produto VARCHAR(100),
preco_s_ipi VARCHAR(100),
preco_c_ipi VARCHAR(100),
prazo VARCHAR(100),
icms VARCHAR(10),
reg INT,
quest INT,
resp VARCHAR(100)
)
BEGIN
set reg = 0;
For Select r.plugin_formcreator_formanswers_id, r.plugin_formcreator_questions_id ,r.answer from glpi_plugin_formcreator_answers r order by r.plugin_formcreator_formanswers_id, r.plugin_formcreator_questions_id
Into reg, quest, resp
Do
Begin
IF(reg = 0) then
begin
set nome_concorrente = resp;
end
ELSEIF(reg = 1) then
begin
set familia_produto = resp;
end
ELSEIF(reg = 2) then
begin
set preco_s_ipi = resp;
end
ELSEIF(reg = 3) then
begin
set preco_c_ipi = resp;
end
ELSEIF(reg = 4) then
begin
set prazo = resp;
end
ELSEIF(reg = 5) then
begin
set icms = resp;
end
END IF;
Set reg = reg+1;
IF(reg > 5) then
begin
suspend;
end
End
END;$$
DELIMITER ;
OBS não tenho muita pratica com Mysql.