FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Clausula If Then Else en MYSQL...?
Hola a todos...
Lo del título, ¿se puede hacer funcionar en un query a una base MySQL usando las sentencias If Then y Else ?. Viendo en el manual de referencia de MySQL 5.0 esto se puede hacer (hablan de procedimientos almacenados, no de una query común). Si se puede, ¿de que forma? (la sintaxis correcta, obvio...). Desde ya, muchas gracias |
#2
|
||||
|
||||
MySQL soporta condicionales, aunque no me queda claro a qué te refieres con hacer funcionar una query en una base MySQL.
En una consulta SQL puedes usar la función IF
También está la sentencia CASE:
// Saludos |
#3
|
|||
|
|||
Hola Román, muchas gracias por la respuesta.
Lo que necesito es otorgarle un determinado valor a un campo, dependiendo de varias opciones (más de 2), con lo cual, con la función IF() sólo tengo dos posibilidades de respuesta. Un ejemplo escrito muy burdamente de lo que necesito hacer es : Como verás, en el Campo4 debo obtener un valor evaluando distintas condiciones . Obviamente, como la sintaxis sé que no es la correcta por desconocerla. Nuevamente, gracias |
#4
|
||||
|
||||
Creo que nada impide que anides una función IF dentro de otra. La sintaxis ya te la puse.
// Saludos |
#5
|
||||
|
||||
Es como dice Roman, tienes que anidar los IFs algo asi:
De esta forma el conjunto de IFS anidados se convierte en el campo "num_caja" (podrías ponerle el nombre que quieras) También se puede escribir así para mejor lectura:
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#6
|
||||
|
||||
¿Y si "armas" la sentencia SQL desde tu aplicación? Digo, puede ser mejor...
O usar el "CASE WHEN" (o su equivalente en MySQL) para evitarte la ristra de IF, que a la larga pueden ser difíciles de depurar en caso de fallo...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#7
|
||||
|
||||
No se puede usar un case porque la condición que está evaluando incluye varios campos y case solo soporta un campo que puede tomar muchos valores. En el caso que puso nuestro amigo evalúa distintos campos y el resultado solo puede ser cierto o falso por lo que es mejor el uso de ifs. Eso sí, tiene que tener mucho cuidado en como escribe la sentencia para que no le sea dificil depurar.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#8
|
||||
|
||||
Yo lo que no entiendo es eso de armar la sentencia sql desde la aplicación. No sé si tiammat se refiera a que en lugar de calcular el campo en SQL mejor se calcule en delphi, ya en el código cliente. De hecho, quizá sea lo mejor. Cuando una consulta SQL es tan complicada, siempre me da la sensación de que no es bueno el camino.
// Saludos |
#9
|
||||
|
||||
Cita:
Normalmente, lo que hago (y lo que le sugiero al compañero) es que dentro de la aplicación armar el SQL completo, con sus parámetros y datos para "cerrar" el resultado, pasarlo al componente de conexión de su preferencia y que el motor de bases de datos regrese el resultado deseado. No es complicado, aunque a veces hay que trabajarlo un poquitín... Saludines.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Clausula Transform? | GustavoCruz | Firebird e Interbase | 5 | 07-02-2008 23:19:03 |
clausula COUNT con Mysql | karlaoax | SQL | 1 | 08-08-2007 05:23:27 |
Clausula Like | JoseAntonio | SQL | 5 | 27-05-2007 08:28:47 |
Problemas con clausula IN en MySQL | Coco_jac | MySQL | 7 | 12-07-2006 10:34:01 |
Clausula LIKE | federiconqn21 | SQL | 3 | 28-12-2005 16:49:13 |
|