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

estructuras condiciones? cual es la sintaxis en mysql

Estas en el tema de estructuras condiciones? cual es la sintaxis en mysql en el foro de Mysql en Foros del Web. Hola, este es el primer post y aunque no quize que sea una pregunta tan basica pues estoy con cierta duda en cuanto a la ...
  #1 (permalink)  
Antiguo 29/11/2009, 15:29
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 5 meses
Puntos: 4
estructuras condiciones? cual es la sintaxis en mysql

Hola, este es el primer post y aunque no quize que sea una pregunta tan basica pues estoy con cierta duda en cuanto a la sintaxis de las estructuras condicionales en mysl, por ejemplo:

de if es esta pero en sql, es lo mismo en mysql?

if (condicion) then
end if

y cuales son las sintaxis de for,while,do while,switch??
  #2 (permalink)  
Antiguo 29/11/2009, 16:02
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, 5 meses
Puntos: 2658
Respuesta: estructuras condiciones? cual es la sintaxis en mysql

Ese tipo de estructuras existe en los stored procedures. Supongo que te estás refiriendo a ellos.
Lo podrás encontrar explicado en el manual de referencia: 19.2.12. Constructores de control de flujo
En el caso de FOR, no existe puntualmente, pero lo puedes construir con los otros haciendo uso de variables.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 29/11/2009, 16:06
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: estructuras condiciones? cual es la sintaxis en mysql

oh gracias amigo, estube buscando hora y no encontraba ;D.
creoo que loop hace las funciones de FOR
  #4 (permalink)  
Antiguo 29/11/2009, 16:07
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, 5 meses
Puntos: 2658
Respuesta: estructuras condiciones? cual es la sintaxis en mysql

Tanto LOOP como REPEAT lo hacen. Lo que te conviene es establecer una variable como contador para el caso y listo, con ese valor verificas en el final del loop.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 29/11/2009, 16:28
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: estructuras condiciones? cual es la sintaxis en mysql

bueno, si yo quiero hacer un procedimiento almacenad

create procedure mostrar(elementos)

podria implementar in if al principio para clasificar la informacion?
begin
if (condiciones de diferentes tablas) then
condiciones
end if

y otra pregunta seria se puede implementar un if dentro de select o de where, having etc.??

Última edición por Copia; 29/11/2009 a las 17:29
  #6 (permalink)  
Antiguo 29/11/2009, 18:18
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, 5 meses
Puntos: 2658
Respuesta: estructuras condiciones? cual es la sintaxis en mysql

Cita:
create procedure mostrar(elementos)

podria implementar in if al principio para clasificar la informacion?
begin
if (condiciones de diferentes tablas) then
condiciones
end if
Técnicamente, si, lo que no puedo es dar una descripción precisa sin saber qué es lo que hay que hacer.
Un IF que tenga alternativas sería un sistema de decisión del tipo IF ... THEN/ ELSEIF... THEN / ELSE / END IF. Ese conjunto de alternativas es perfectamente viable, aunque para que tenga sentido cada alternativa debería ser una comparación lógica diferente, donde no intervengan los mismos parámetros.
Para hacer una selección basada en diferentes valores obtenidos en un mismo tipo de consulta con los mismos parámetros, se usa CASE..., no IF.
De todos modos, la comparación lógica que se hace en el IF puede ser perfectamente una sentencia SELECT (como también en el CASE) siempre y cuando esa sentencia devuelva un único valor. Si el SELECT devuelve más de un valor, hay que resolver el problema de otras formas, y allí tendrías que detallar más lo que hay que hacer.

Cita:
y otra pregunta seria se puede implementar un if dentro de select o de where, having etc.??
Existe en MySQL la función IF(comparación, valorTrue, valorFalse); lo que no puede contener es un SELECT como resultado de la comparación (no es un constructor de flujo).
respecto al uso dentro de cada cláusula de una sentencia SELECt, la pregunta es demasiado abstracta. Deberías aclarar más, y con algún caso de ejemplo, qué es lo que quieres resolver. Así podría entender mejor hacia dónde vas.
Respecto del WHERE, no se pueden hacer en él ciertas cosas, como usar funciones de agrupamiento, o alias (y no se puede usar un IF()). Para ello el modelo implementó el HAVING, pero a su vez el uso debe tener sentido. No te olvides que el significado de HAVING es "teniendo...", lo que implica que el resultado contenga cierto valor o condición.




Te daré, si, un tip: Es muy habitual que cuando empiezan a desarrollar con bases de datos, los programadores traten de resolver las cosas aplicando la misma lógica que en los programas, y eso es un error. Las más de las veces, todo lo que necesitan es escribir una sola consulta, mucho más compleja, que responda lo que necesitan...
Pero para eso se requiere cierta experiencia.

Yo, al principio, realizaba búsquedas secuenciales (que los SP soportan perfectamente) para buscar ciertos registros en las tablas. Luego me di cuenta que si reescribía una sola sentencia SELECT usando ciertas funciones obtenía exactamente lo que buscaba... en un centésimo del tiempo que usaba la busqueda secuencial.

El SQL es muy poderoso haciendo consultas, pero hay que acostumbrarse a la lógica que usa, que es distinta de la de programación (mis profesores de BB.DD. me lo decían y yo creía que exageraban).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 29/11/2009 a las 18:23
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 17:53.