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

If condicional dentro de MYSQ

Estas en el tema de If condicional dentro de MYSQ en el foro de Mysql en Foros del Web. Tengo la siguiente consulta: SELECT llave, contacto, nombre, CONCAT(calle, ' Num. ', exterior, ' Col. ', colonia) Funciona bien, obtengo algo así: ------------------------- 1231 HUGO ...
  #1 (permalink)  
Antiguo 14/11/2011, 18:19
 
Fecha de Ingreso: enero-2002
Mensajes: 1.137
Antigüedad: 17 años, 10 meses
Puntos: 19
If condicional dentro de MYSQ

Tengo la siguiente consulta:

SELECT llave, contacto, nombre, CONCAT(calle, ' Num. ', exterior, ' Col. ', colonia)

Funciona bien, obtengo algo así:
-------------------------
1231
HUGO PEREZ
AV. LINCOLN Num 123 Col. AMERICA
-------------------------

El problema es que no todos los campos tienen información, por lo que en algunos casos obtengo:
-------------------------
1231
HUGO PEREZ
AV. LINCOLN Num Col. AMERICA
-------------------------

En el supuesto de venir el campo "exterior" vacio, no agregar la palabra Num, por lo que quedaría así:
-------------------------
1231
HUGO PEREZ
AV. LINCOLN Col. AMERICA
-------------------------

¿Como se hace lo anterior?

Gracias
  #2 (permalink)  
Antiguo 15/11/2011, 02:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 11 años, 9 meses
Puntos: 574
Respuesta: If condicional dentro de MYSQ

CONCAT(calle, IF(exterior IS NOT NULL,' Num. ',''), exterior, ' Col. ', colonia)

Creo

Pero exterior podria ser NULL o "" cadena vacia que no es lo mismo

CONCAT(calle, IF(exterior IS NOT NULL AND exterior<>'',' Num. ',''), exterior, ' Col. ', colonia)

ese concat lo podrias hacer con programación externa ...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 15/11/2011, 10:27
 
Fecha de Ingreso: enero-2002
Mensajes: 1.137
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: If condicional dentro de MYSQ

Cita:
Iniciado por quimfv Ver Mensaje
ese concat lo podrias hacer con programación externa ...
Si, es verdad, pero deseo saber como se introduce un condicional dentro de MySQL

Gracias, probaré lo que dices.
  #4 (permalink)  
Antiguo 15/11/2011, 10:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.321
Antigüedad: 12 años
Puntos: 2653
Respuesta: If condicional dentro de MYSQ

Cita:
Iniciado por Bier Ver Mensaje
Si, es verdad, pero deseo saber como se introduce un condicional dentro de MySQL

Gracias, probaré lo que dices.
Si lo que quieres es un SELECT condicional, eso no existe en MySQL. Existen en otros DBMS, pero no en éste.
Si la pregunta es cómo poner o no una cadena de texto según exista un dato en ese registro, es la solución que te está dando quimfv: la función IF(condicion, si_verdadero, si_falso). El cómo la elabores tu, depende de lo que desees lograr.
__________________
¿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 15/11/2011, 11:43
 
Fecha de Ingreso: enero-2002
Mensajes: 1.137
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: If condicional dentro de MYSQ

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Si lo que quieres es un SELECT condicional, eso no existe en MySQL. Existen en otros DBMS, pero no en éste.
Si la pregunta es cómo poner o no una cadena de texto según exista un dato en ese registro, es la solución que te está dando quimfv: la función IF(condicion, si_verdadero, si_falso). El cómo la elabores tu, depende de lo que desees lograr.
Agradezco los comentarios, me han sido muy útiles (como siempre).
Saludos
  #6 (permalink)  
Antiguo 15/11/2011, 19:22
 
Fecha de Ingreso: junio-2011
Mensajes: 46
Antigüedad: 8 años, 5 meses
Puntos: 3
Respuesta: If condicional dentro de MYSQ

Cita:
Iniciado por quimfv Ver Mensaje
CONCAT(calle, IF(exterior IS NOT NULL,' Num. ',''), exterior, ' Col. ', colonia)

Creo

Pero exterior podria ser NULL o "" cadena vacia que no es lo mismo

CONCAT(calle, IF(exterior IS NOT NULL AND exterior<>'',' Num. ',''), exterior, ' Col. ', colonia)

ese concat lo podrias hacer con programación externa ...

Podrias con PHP
  #7 (permalink)  
Antiguo 15/11/2011, 19:33
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.321
Antigüedad: 12 años
Puntos: 2653
Respuesta: If condicional dentro de MYSQ

BMIS: Estás en el foro de MySQL y la pregunta es sobre cómo hacerlo en MySQL.
PHP es tema de otro Foro...
__________________
¿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: campos, condicional, select
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 07:42.