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

[SOLUCIONADO] MySQL Update que añada valor acual+otro nuevo

Estas en el tema de MySQL Update que añada valor acual+otro nuevo en el foro de Mysql en Foros del Web. Buenas necesito crear una consulta para ingresar en el phpmyadmin, tengo una tabla llamada: "sxpor_post" Y los campos "xfields" y "category" Necesito que en los ...
  #1 (permalink)  
Antiguo 23/09/2012, 01:32
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
MySQL Update que añada valor acual+otro nuevo

Buenas necesito crear una consulta para ingresar en el phpmyadmin, tengo una tabla llamada:

"sxpor_post"
Y los campos "xfields" y "category"

Necesito que en los valores del campo "category" me añada el siguiente texto a continuación de lo que allá ya anteriormente:

Ejemplo:

Si contiene: "23,45,12" que acontinuacion de eso añada ",98" y quede de resultado asi"23,45,12,98"

Y eso solo en los que el campo "xfields" contenga "%hitfile%" y no modificar ningún valor de este campo. (WHERE `xfields` LIKE '%hitfile%')

Saludos y a ver si pueden ayudarme
  #2 (permalink)  
Antiguo 23/09/2012, 02:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: MySQL Update que añada valor acual+otro nuevo

Código MySQL:
Ver original
  1. UPDATE sxpor_post
  2.  SET category = CONCAT(category,',98')
  3.  WHERE xfields LIKE '%hitfile%'
  #3 (permalink)  
Antiguo 23/09/2012, 09:44
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: MySQL Update que añada valor acual+otro nuevo

Muchísimas gracia parece que va perfecto, luego pensé en que si actualizaba y había algunas que contenían la palabra y ya tenían la categoría puesta crearía duplicado y lo mejore así:

Código MySQL:
Ver original
  1. UPDATE sxpor_post
  2. SET category = CONCAT(category,',98')
  3. WHERE xfields LIKE '%hitfile%' AND category NOT LIKE '%98%'

Aun que también pensé en caso de que contenga el %hitfile% que borrara el ',98' eso ya veré si puedo...

Formar SQL básico se de hace un tiempo aunq estoy muy desentrenado y noto que me falta conocimientos de saber usar cosas como "CONCAT", "NOT" que no recuerdo ni como se llaman, ni conozco ningún manual sobre eso.

Última edición por erossrk; 23/09/2012 a las 09:49
  #4 (permalink)  
Antiguo 23/09/2012, 10:00
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: MySQL Update que añada valor acual+otro nuevo

TEn mucho cuidado con eso.
Código MySQL:
Ver original
  1. UPDATE sxpor_post
  2. SET category = CONCAT(category,',98')
  3. WHERE xfields LIKE '%hitfile%' AND category NOT LIKE '%98%'
Un campo de una tabla jamás debe contener varios valores. Los campos multivaluados están prohibidos en las bases de datos, y son la evidencia de que el diseño de las tablas está muy mal hecho, ya que existe una relación N:N que no ha sido definida ni controlada.
__________________
¿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 25/09/2012, 00:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: MySQL Update que añada valor acual+otro nuevo

Estoy completamente de acuerdo con @gnzsoloyo. Es un error mantener y una locura administrar una base de datos con campos multivaluados.
Una tabla para categories con un campo para el identificador, que podrá repetirse en distintos registros, y otro campo donde guardes category bastará para resolver el problema, al menos a nivel de bases de datos.
  #6 (permalink)  
Antiguo 30/09/2012, 07:07
 
Fecha de Ingreso: septiembre-2012
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: MySQL Update que añada valor acual+otro nuevo

Gracias por los consejos y perdonen que tardara en contestar pues estuve fuera de casa sin acceso a la red, la BD que utilizo es del scrip Datalife Engine, y hay mucho no puedo modificar de la estructura.

Cuando aplico el código que mostré después el scrip no me muestra en la pagina el contenido de las que modifica, pero pasa con cualquier registro que sea modificado por un update cualquier cosa.

ACTUALIZO: Era una cosa de mis caches en local la consulta va perfecta asi:

Código MySQL:
Ver original
  1. UPDATE sxpor_post
  2. SET category = ( CONCAT(category,',68') )
  3. WHERE xfields LIKE '%hitfile%' AND category NOT LIKE '%,68%'

Podríais detallarme mas eso de como hacer una que sea multicategoria y sea eficiente, por si alguna vez hago una de 0.


Para la consulta lo que necesitaría es una que hiciera al revés que la que e puesto ultima si no encuentra %hitfile% quite el ",68" de la category

Última edición por erossrk; 30/09/2012 a las 09:06

Etiquetas: php, tabla, update, campos
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 06:37.