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

CONCAT + MySQL

Estas en el tema de CONCAT + MySQL en el foro de Mysql en Foros del Web. Hola amigos. Tengo una tabla mas o menos con la siguiente estructura: Articulo: id nombre color capacidad Como ven esa una simple tabla de articulos. ...
  #1 (permalink)  
Antiguo 04/02/2010, 11:33
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 1 mes
Puntos: 1
CONCAT + MySQL

Hola amigos.

Tengo una tabla mas o menos con la siguiente estructura:

Articulo:
id
nombre
color
capacidad

Como ven esa una simple tabla de articulos.
Yo tengo un SELECT mas o menos como el siguiente:

SELECT id, CONCAT("Nombre: ", nombre, " Color: ", color, " Capacidad: ", capacidad) AS Descripcion
FROM Articulo;

Como ven, los campos nombre, color y capacidad los concateno y los traigo juntos en un solo campo llamado Descripcion.

El detalle está, en que yo tengo que validar si cada uno de los campos nombre, color y capacidad estan vacios o no para saber
si los concateno o no.

Supongamos que tengo dos registros en la tabla Articulo como los siguientes:

id nombre Color Capacidad
001 Monitor Negro
002 Teclado Negro 30 Teclas

Mi SELECT debería devolver la información de la siguiente forma:

001 Nombre: Monitor Color Negro
002 Nombre: Teclado Color Negro Capacidad 30 Teclas

Como ven, para el primer registro no mostré el campo Capacidad ya que el mismo estaba vacio, para el segundo registro si lo concatene.

Me gusaria saber como puedo hacer esto en MySQL, o que me den alguna mano.

Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 04/02/2010, 11:44
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: CONCAT + MySQL

Es un poco complicado, pero la idea sería:
Código MySQL:
Ver original
  1. SELECT id,
  2.     CONCAT(
  3.       IF(nombre!= '', CONCAT("Nombre: ", nombre), ''),
  4.       IF(color!= '', CONCAT(" Color: ", color), ''),
  5.       IF(capacidad!= '', CONCAT(" Capacidad: ", capacidad), '')
  6.     ) AS Descripcion
  7. FROM Articulo;

Ahora bien, esta sintaxis requiere que los campos no sen NULL, porque de lo contrario sería:

Código MySQL:
Ver original
  1. SELECT id,
  2.     CONCAT(
  3.       IF(IFNULL(nombre,'')!= '', CONCAT("Nombre: ", nombre), ''),
  4.       IF(IFNULL(color,'')!= '', CONCAT(" Color: ", color), ''),
  5.       IF(IFNULL(capacidad,'')!= '', CONCAT(" Capacidad: ", capacidad), '')
  6.     ) AS Descripcion
  7. FROM Articulo;
__________________
¿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 04/02/2010, 13:31
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 1 mes
Puntos: 1
Re: CONCAT + MySQL

Hola gnzsoloyo.

Muchas gracias por tu respuesta.

Lo voy a intentar asi y te cuento.

Etiquetas: Ninguno
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 22:03.