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

unir 2 campos

Estas en el tema de unir 2 campos en el foro de Mysql en Foros del Web. En un a tabla tengo: mes char(2) dia char(2) extra char(5) Tengo: Nombre= "01" Fecha="20" y deseo unir los 2 campo en el campo resultado. ...
  #1 (permalink)  
Antiguo 13/07/2010, 10:38
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
unir 2 campos

En un a tabla tengo:
mes char(2)
dia char(2)
extra char(5)

Tengo:
Nombre= "01"
Fecha="20"

y deseo unir los 2 campo en el campo resultado.

He hecho los siguientes intentos:

$consulta = "UPDATE $tabla SET extra = mes + dia ";

$consulta = "UPDATE $tabla SET extra = mes . dia ";

¿como debo unir estos campos sin que sea una sumatoria?
  #2 (permalink)  
Antiguo 13/07/2010, 11:49
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: unir 2 campos

Hola Bier

Con Concat, podria ser

Código MySQL:
Ver original
  1. UPDATE $tabla SET extra = concat(mes , dia )

Saludos
  #3 (permalink)  
Antiguo 13/07/2010, 15:38
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: unir 2 campos

Cita:
Iniciado por chelodelsur Ver Mensaje
Hola Bier

Con Concat, podria ser

Código MySQL:
Ver original
  1. UPDATE $tabla SET extra = concat(mes , dia )

Saludos
Excelente Chelo, trabajó perfecto, gracias, hasta parece magia.

Ahora me surge otra duda:
¿Como puedo insertar una condición?

Imaginemos que el campo mes trae un valor de este tipo: 1,2,3,4,5...12 y deseo sustituir: 1 por EN, 2 por FE, 3 por MA, ... 12 por DI.

¿como lo podría hacer?

Gracias
  #4 (permalink)  
Antiguo 14/07/2010, 06:09
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: unir 2 campos

Hola Bier

mira eso se podría hacer intercalando en tu sentencia algo así
Código MySQL:
Ver original
  1. WHEN mes = 1 THEN 'ENERO'
  2. WHEN mes = 2 THEN 'FEBRERO'
  3. .....
  4. WHEN mes =12 THEN 'DICIEMBRE'
  5. ELSE 'VALOR NULO' END AS 'NOMBRE MES'

De todos modos me parece que la forma que en que está planteada tu estructura de datos, no es la más óptima, ya que te ahorrarías varios líos si guardaras la fecha en un solo campo del tipo DATE o DATETIME, con lo que tendrías las herramientas para visualizar los datos como quisieras.

Saludos
  #5 (permalink)  
Antiguo 16/07/2010, 11:18
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: unir 2 campos

Cita:
Iniciado por Bier Ver Mensaje
Excelente Chelo, trabajó perfecto, gracias, hasta parece magia.

Ahora me surge otra duda:
¿Como puedo insertar una condición?

Imaginemos que el campo mes trae un valor de este tipo: 1,2,3,4,5...12 y deseo sustituir: 1 por EN, 2 por FE, 3 por MA, ... 12 por DI.

¿como lo podría hacer?

Gracias
Cita:
Iniciado por chelodelsur Ver Mensaje
Hola Bier

mira eso se podría hacer intercalando en tu sentencia algo así
Código MySQL:
Ver original
  1. WHEN mes = 1 THEN 'ENERO'
  2. WHEN mes = 2 THEN 'FEBRERO'
  3. .....
  4. WHEN mes =12 THEN 'DICIEMBRE'
  5. ELSE 'VALOR NULO' END AS 'NOMBRE MES'

De todos modos me parece que la forma que en que está planteada tu estructura de datos, no es la más óptima, ya que te ahorrarías varios líos si guardaras la fecha en un solo campo del tipo DATE o DATETIME, con lo que tendrías las herramientas para visualizar los datos como quisieras.

Saludos
Requiero dentro del UPDATE insertar un if, quizá pido demasiado y no exista, algo así:

Código MySQL:
Ver original
  1. # SENTENCIA ORIGINAL:
  2. UPDATE $tabla SET extra = CONCAT(mes , dia )
  3.  
  4. # SENTENCIA CON IF: (Si mes es 1 asignar ENE
  5. UPDATE $tabla SET extra = CONCAT( {if mes=1 [mes="ENE"]} , dia )
Existe algo parecido?
  #6 (permalink)  
Antiguo 19/07/2010, 06:24
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: unir 2 campos

hola Bier

Usa el CASE que te dí,
Código MySQL:
Ver original
  1. UPDATE tu_tabla SET extra = CONCAT(
  2. WHEN mes=1 THEN 'enero'
  3. WHEN mes=2 THEN 'febrero'
  4. ....
  5. ELSE 'nulo' END ),'-', dia)

Pero insisto que lo más sano es manejar los datos en el formato que corresponde, así te evitas todos estos malabares.

saludos
  #7 (permalink)  
Antiguo 19/07/2010, 08:00
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: unir 2 campos

Cita:
Iniciado por chelodelsur Ver Mensaje
hola Bier

Usa el CASE que te dí,
Código MySQL:
Ver original
  1. UPDATE tu_tabla SET extra = CONCAT(
  2. WHEN mes=1 THEN 'enero'
  3. WHEN mes=2 THEN 'febrero'
  4. ....
  5. ELSE 'nulo' END ),'-', dia)

Pero insisto que lo más sano es manejar los datos en el formato que corresponde, así te evitas todos estos malabares.

saludos
Chelito, es una maravilla tu respuesta, eso es exactamente lo que requiero, Gracias por ello.
Debo comentarte que el formato de mi pregunta es un supuesto. Formulé mi pregunta con ese diseño para poder explicar de forma entendible mi necesidad.
Ahora, gracias a tu excelente respuesta voy a implementarlo de acuerdo a mis requerimientos.
Gracias nuevamente.
  #8 (permalink)  
Antiguo 19/07/2010, 08:15
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: unir 2 campos

Que bueno que te ayudó

Saludos

Etiquetas: campos, unir
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 18:13.