Loop for select do begin ... end no MySQL [RESOLVIDO]

Boa tarde pessoal.

Em triggers e procedures no Firebird, é possível criar um loop da seguinte forma:

for SELECT coluna1,
FROM tabela1
INTO variavel1
do begin

"executa comandos usando o valor de "variável1" enquanto a "tabela1 é varrida"

end

Como eu poderia resolver esse problema no MySQL? Alguém sabe dizer?

Grato pela atenção.

http://www.mysqltutorial.org/stored-procedures-loop.aspx
veja se ajuda

Tem que aprender sobre cursores:


DELIMITER $$
 
CREATE PROCEDURE build_email_list (INOUT email_list varchar(4000))
BEGIN
 
 DECLARE v_finished INTEGER DEFAULT 0;
        DECLARE v_email varchar(100) DEFAULT "";
 
 -- declare cursor for employee email
 DEClARE email_cursor CURSOR FOR 
 SELECT email FROM employees;
 
 -- declare NOT FOUND handler
 DECLARE CONTINUE HANDLER 
        FOR NOT FOUND SET v_finished = 1;
 
 OPEN email_cursor;
 
 get_email: LOOP
 
 FETCH email_cursor INTO v_email;
 
 IF v_finished = 1 THEN 
 LEAVE get_email;
 END IF;
 
 -- build email list
 SET email_list = CONCAT(v_email,";",email_list);
 
 END LOOP get_email;
 
 CLOSE email_cursor;
 
END$$
 
DELIMITER ;

Agradeço a Haroldo e flaviomorais pelas dicas, vou avaliar e depois dou retorno.

Bom dia a todos os interessados,

Para fechar este assunto, após avaliar, com calma decidi que neste sistema devo usar o banco de dados mais como um repositório e só em casos extremos utilizar recursos como procedures e triggers, e concentrar no php todo o processamento, desta forma no momento irei focar apenas no PHP/ScriptCase, melhorardo assim a minha curva de produtividade e creio que esta decisão, facilitará a manutenção do sistema no futuro.

Cordialmente

Beto

Existe hoje uma apelação em usar o banco como repositório de dados, há de se observar e pode valer a pena se :slight_smile:

  1. vc usar apenas uma linguagem de programação em todos os sistemas da sua empresa e NUNCA mudar.
  2. se vc não construir uma API para NADA.

Se vc não está dentro das duas opções , um “DBA” é necessário;
Tive enormes problemas com estes casos , refazer regra de negócio devido a troca de linguagem no tocante a aquisição de dados é um trabalho jogado fora.
Hoje o banco responde com clareza as requisições, quer seja para java, C# ,PHP e C++;
Temos 3 grandes API e independe das linguagem e ambientes;
E a manipulação de dados se da no mesmo ambiente no banco, se torna mais rápido.

Linguagem de programação é necessária para algumas funções e se torna melhor quando não há a necessidade de ficar realizando N requisições para atender a uma regra de negócio.