Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Case - Duda

Estas en el tema de Case - Duda en el foro de Mysql en Foros del Web. Hola. Tengo una duda con la sentencia Case. En los lenguajes de programacion se utiliza la sentencia Break para que no ejecute ningun otro item ...
  #1 (permalink)  
Antiguo 18/07/2010, 22:09
 
Fecha de Ingreso: junio-2010
Mensajes: 11
Antigüedad: 13 años, 10 meses
Puntos: 0
Case - Duda

Hola.
Tengo una duda con la sentencia Case.
En los lenguajes de programacion se utiliza la sentencia Break para que no ejecute ningun otro item del case... En mysql hay algun equivalente?
Otra duda que tengo es como puedo hacer para salir de un bloque del case por ejemplo si dentro de ese bloque se cumple una condicion con la cual no quiero que se siga ejecutando el resto de las sentencias (ahora clarifico con un ejemplo), hay alguna sentencia del tipo exit? se que los exit se usan para los handlers pero no se si hay algo parecido para los case

ejemplo

codigo fuera del case ....

case variable
when 1 then
if x then
exit
end if
if tal cosa then
if tal otra cosa then
hacer esto otro
else
hacer esto
end if
end if


when 2 then
.....

else (del case)
begin
end;

codigo fuera del case


por ejemplo quiero que en el 1er case salga de ese bloque de codigo y se dirija afuera del case (abajo obvio)
se podra lograr con alguna etiqueta y un salto goto?. no se no se me ocurre otra cosa y no vi mayor informacion en el manual de mysql.
Muchas gracias.
  #2 (permalink)  
Antiguo 20/07/2010, 03:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Case - Duda

No existe un BREAK para la función CASE en MySQL, ni tampoco para el controlador de flujo CASE / END CASE de los stored procedure.
En el caso de la función CASE() eso sucede porque el valor de la primera condición TRUE produce la salida de la función y no evalúa otros valores.
En el caso de CASE/END CASE se produce lo mismo: Son condiciones de salida, por lo demás, si están bien secuenciadas las condiciones, es mayor el tiempo de ejecución de las sentencia dependientes que de una de ellas que lo que tarda en evaluar las restantes, por lo que hacer que salga artificialmente carece de utilidad práctica.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: case
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:40.