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

Concatenar con filtros

Estas en el tema de Concatenar con filtros en el foro de Mysql en Foros del Web. Buen dia, necesito saber si es posible concatenar utilizando filtros o sentencias de control. Ya que necesito concatenar y saber si uno de los dos ...
  #1 (permalink)  
Antiguo 04/01/2014, 13:19
 
Fecha de Ingreso: enero-2014
Mensajes: 3
Antigüedad: 10 años, 11 meses
Puntos: 0
Información Concatenar con filtros

Buen dia, necesito saber si es posible concatenar utilizando filtros o sentencias de control. Ya que necesito concatenar y saber si uno de los dos campos esta vacio si es asi, entonces que no se agrege el separador que utilizo.

TTengo una tabla donde almaceno cursos realizados.
con los campos id, name, initialdate, enddate.

En una consulta lo que hago es concatenar los campos initialdate y enddate.

Código MySQL:
Ver original
  1. SELECT curso, CONCAT_WS(' y ', initialdate,enddate) AS fecha
  2. FROM takencourses WHERE id = '$valor' "
Ejemplo:
Curso: Vial de seguridad Fecha: 10-12-2013 y 13-12-2014

Pero tambien necesito en caso de que el campo enddate este vacio solamente el valor del campo initialdate sin el separador 'y'

He utilizado las sig consultas pero me devuelven el valor del campo initialdate junto al separador 'y'

Código MySQL:
Ver original
  1. SELECT curso, CONCAT_WS(' y ', initialdate,enddate) AS fecha FROM takencourses WHERE id = '$valor'

Código MySQL:
Ver original
  1. SELECT curso, CONCAT(IF(initialdate IS NULL,'',initialdate),'  y ',IF(enddate IS NULL,'',enddate)) AS fecha FROM takencourses WHERE id = '$valor'
"

Ejemplo:
Curso: Rescate y emergencia Fecha: 20-12-2013 y

Que sugerencia me pudieran dar para lo anterior
Gracias por su tiempo-

Última edición por gnzsoloyo; 04/01/2014 a las 13:53 Razón: Codigo de programacion no permitido en foros de BBDD
  #2 (permalink)  
Antiguo 04/01/2014, 16:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Concatenar con filtros

No sabemos qué valor guardas cuando no existe fecha para esa enddate, si valor vacío, NULL, o 0000-00-00. Dependiendo de lo que guardes podrás tendrás que usar en el primer parámetro del IF una expresión u otra. Pensemos que guardas NULL. No lo he probado
Código MySQL:
Ver original
  1. SELECT IF (enddate IS NULL, initialdate, CONCAT_WS(' y ', initialdate,enddate))  fecha...
Por otro lado, observo por la forma en que muestras las fechas que quizás las estás guardando como VARCHAR. Eso sería un grave error que traería más tarde graves consencuencias. Revisa eso.

Última edición por jurena; 05/01/2014 a las 15:48
  #3 (permalink)  
Antiguo 04/01/2014, 21:45
 
Fecha de Ingreso: enero-2014
Mensajes: 3
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Concatenar con filtros

Gracias jurena me sirvio tu explicacion

Solo adapte para que evalue con valores vacios.

el codigo queda de la siguiente manera:

IF(enddate ='', initialdate, CONCAT_WS(' y ', initialdate,enddate)) AS fecha...

Etiquetas: concat, concatenar, filtros
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 08:36.