En MySQL, tengo este procedimiento almacenado con un bucle For en él:
DELIMITER $$
CREATE PROCEDURE ABC()
BEGIN
DECLARE a INT Default 0 ;
simple_loop: LOOP
SET a=a+1;
select a;
IF a=5 THEN
LEAVE simple_loop;
END IF;
END LOOP simple_loop;
END $$
Siempre imprime 1
. ¿Cuál es la sintaxis correcta para un bucle for de MySQL?
Respuestas:
fuente
BEGIN...END
y crear un procedimiento si solo quiero usarLOOP
?Ejemplo de sintaxis de bucle while en MySQL:
Que imprime:
Ejemplo de sintaxis de ciclo REPEAT en MySQL:
Que imprime:
Ejemplo de sintaxis de bucle FOR en MySQL:
Que imprime:
Haz el tutorial: http://www.mysqltutorial.org/stored-procedures-loop.aspx
Si te veo impulsando este tipo de construcciones de MySQL for-loop a producción, te dispararé con el lanzador de misiles de espuma. Puedes usar una llave de tubo para clavar un clavo, pero hacerlo te hace parecer tonto.
fuente
declare str VARCHAR(255) default '';
en la consola de MySQL (5.6) me da el mensaje de errorError 1064 (42000): ... for the right syntax to use near '' at line 3
, que es tan claro como el barro (aunque supongo que no le gusta la cláusula DEFAULT).delimiter //
antes de ejecutar esto.Suponga que tiene una tabla con el nombre 'table1'. Contiene una columna 'col1' con tipo varchar. La consulta a la tabla de cajas se da a continuación
Ahora, si desea insertar un número del 1 al 50 en esa tabla, utilice el siguiente procedimiento almacenado
Para llamar a ese procedimiento almacenado, use
fuente
Puede intercambiar esta variable local por una global, sería más fácil.
fuente