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

Añadir valor a un campo de una tabla

Estas en el tema de Añadir valor a un campo de una tabla en el foro de Mysql en Foros del Web. Hola buenas tardes compañeros, tengo una duda que realemnte no se si se puede hacer. Tengo una base de datos, y en una de sus ...
  #1 (permalink)  
Antiguo 30/08/2010, 07:04
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Añadir valor a un campo de una tabla

Hola buenas tardes compañeros, tengo una duda que realemnte no se si se puede hacer.
Tengo una base de datos, y en una de sus tablas tengo un campo que se llama 'botoneraInf'.
Pues en este campo hay valores numericos separados por comas, por ejemplo (251,247,246,248), pues necesito actualizar ese campo con los valores que tiene pero añadiendo un valor mas en todos que seria 499.
No se si me he explcado bien, espero que podais entenderlo, si no lo vuelvo a plantear....................

¿Es posible hacer esto sin tener que ir campo por campo y añadiendo este valor?

gracias muy amables y un saludo compañeros!!!!
  #2 (permalink)  
Antiguo 30/08/2010, 07:18
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: Añadir valor a un campo de una tabla

Hacerlo desde el punto de vista de agregar ese valor, sería un simple
Código MySQL:
Ver original
  1. UPDATE TABLA
  2. SET campo = CONCAT(campo, ', valor)
  3. WHERE condicion;

Pero en realidad tu problema es doble:

Por un lado, eso que estás usando se denomina "campo multivaluado" y están totalmente proscriptos en el modelo de bases de datos relacionales. No se usan ni se deben usar porque entre otras cosas conduce a problemas de difícil solución y consultas imposibles.
Para ellos precisamente existen las relaciones N:M en el modelo que son capaces de administrar esas situaciones mucho más eficientemente.

Por otro lado, si aún así quieres usarlos (es tu prerrogativa), tendrás que administrarlos programáticamente (en la aplicación) o bien por medio de procedimientos almacenados para poder verificar si el valor a ingresar existe o no dentro del conjunto antes de meterlo... o sea, te vas a complicar un poco la vida, por no haber diseñado las tablas de un modo más ortodoxo.

¿Qué eliges?
__________________
¿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 30/08/2010, 07:26
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Respuesta: Añadir valor a un campo de una tabla

los valores que hay ahi corresponden a la posicion de unos botones en unas hojas de estilo, estan relacionadas y tal, pero voy a hacer una actualizacion aplicacion con esos botones, se puede hacer a traves del sistema, pero como hay mas de 200 hojas de estilo, necesito hacerlo del tiron, porque si no el cliente me va a decir que ahora tendra que entrar en las 200 hojas de estilo y actualizarlas una a una con esa nueva posicion que en base de datos seria 499.
¿Entonces con esa consulta lo hago? porque estoy preocupado porque actualizar a mano 200 campos es un poco agobiante,
muchas gracias!!
tu respuesta ha sido muy clara!!
  #4 (permalink)  
Antiguo 30/08/2010, 07:27
 
Fecha de Ingreso: abril-2009
Mensajes: 64
Antigüedad: 15 años
Puntos: 0
Respuesta: Añadir valor a un campo de una tabla

otra cosa , no habra condicion, son todos los campos sin excecpion los q tengo que actulizar
  #5 (permalink)  
Antiguo 30/08/2010, 08:01
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: Añadir valor a un campo de una tabla

Partiendo de la base de que sólo actualice el campo si no existe ya el valor en cuestión, debería haber una condición al menos (que el valor no esté presente):
Código MySQL:
Ver original
  1. UPDATE TABLA
  2. SET campo = CONCAT(campo, ',', '499')
  3. WHERE FIND_IN_SET('499', campo) = 0;
__________________
¿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: tablas
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:08.