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

Hacer subconsulta en update con CONCAT

Estas en el tema de Hacer subconsulta en update con CONCAT en el foro de Mysql en Foros del Web. Hola buenas de nuevo a todos! Quisiera saber si se puede hacer esto ya que no soy capaz.... Intento concatenar texto + resultado de un ...
  #1 (permalink)  
Antiguo 01/10/2010, 04:23
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Hacer subconsulta en update con CONCAT

Hola buenas de nuevo a todos!

Quisiera saber si se puede hacer esto ya que no soy capaz....

Intento concatenar texto + resultado de un SELECT y esto dentro de un update.

UPDATE products_description SET `products_head_desc_tag` = CONCAT(`products_head_desc_tag`, SELECT cat.categories_name FROM products_description pd, categories_description cat, products_to_categories pdcat WHERE pd.products_id = pdcat.products_id AND cat.categories_id = pdcat.categories_id)

Un saludo y gracias!
  #2 (permalink)  
Antiguo 01/10/2010, 04:45
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: Hacer subconsulta en update con CONCAT

Técnicamente sería posible si y sólo si el resultado de la subconsulta produce un único registro, y si la tabla en la subconsulta no es la misma del UPDATE ni una afectada por un TRIGGER del mismo.
Es decir que en tu caso no puedes hacerlo porque no puedes actualizar y consultar la misma tabla al mismo tiempo.
__________________
¿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 01/10/2010, 04:57
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Hacer subconsulta en update con CONCAT

Y como podría hacerlo?

Es decir, que alternativas hay? crear una tabla nueva donde vuelco los resultados?

Un saludo y gracias por tu tiempo!
  #4 (permalink)  
Antiguo 01/10/2010, 05:08
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: Hacer subconsulta en update con CONCAT

Hay que probar usar INNER JOIN entre las tablas, cosa que sí admite el UPDATE, y que es lo que realmente estás haciendo.
Algo así:
Código MySQL:
Ver original
  1.   products_description pd
  2.   INNER JOIN categories_description cat ON cat.categories_id = pdcat.categories_id
  3.   INNER JOIN products_to_categories pdcat ON pd.products_id = pdcat.products_id
  4. SET pd.`products_head_desc_tag` = CONCAT(`products_head_desc_tag`, ' ', cat.categories_name);
Tip: Si vas a agrupar conjuntos de términos como tags te conviene que estén separados, sea por espacios o comas, en ese campo. De lo contrario CONCAT() te los encadenará unos pegados a otros.
__________________
¿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 01/10/2010, 05:15
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Hacer subconsulta en update con CONCAT

Hola muchas gracias, probare!!

Gracias por el consejo, lo tengo en cuenta!! ;)

Un saludo y muchas graciaas!
  #6 (permalink)  
Antiguo 01/10/2010, 05:19
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Hacer subconsulta en update con CONCAT

No me funciona...


#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Â INNER JOIN products_to_categories pdcat ON pd.products_id = pdcat.products_id' at line 2

Gracias!!
  #7 (permalink)  
Antiguo 01/10/2010, 05:30
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: Hacer subconsulta en update con CONCAT

No te quedes con que no te funciona o te da un error. Revisa la sintaxis para ver dónde está el error...
No se aprende con las cosas cocinadas:
Código MySQL:
Ver original
  1.   products_description pd
  2.   INNER JOIN products_to_categories pdcat ON pd.products_id = pdcat.products_id
  3.   INNER JOIN categories_description cat ON pdcat.categories_id = cat.categories_id
  4. SET pd.`products_head_desc_tag` = CONCAT(`products_head_desc_tag`, ' ', cat.categories_name);

Aquí no hay error de sintaxis, a menos que tu versión de MySQL sea muy vieja y tenga algún bug.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 01/10/2010, 05:41
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Hacer subconsulta en update con CONCAT

Hola buenas de nuevo,

Disculpa, pero nunca he trabajado con INNER JOIN, por eso no sabía como detectar el error, ahora le pego un repaso, muchas gracias!!
  #9 (permalink)  
Antiguo 01/10/2010, 05:46
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Hacer subconsulta en update con CONCAT

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No te quedes con que no te funciona o te da un error. Revisa la sintaxis para ver dónde está el error...
No se aprende con las cosas cocinadas:
Código MySQL:
Ver original
  1.   products_description pd
  2.   INNER JOIN products_to_categories pdcat ON pd.products_id = pdcat.products_id
  3.   INNER JOIN categories_description cat ON pdcat.categories_id = cat.categories_id
  4. SET pd.`products_head_desc_tag` = CONCAT(`products_head_desc_tag`, ' ', cat.categories_name);

Aquí no hay error de sintaxis, a menos que tu versión de MySQL sea muy vieja y tenga algún bug.
nada... no hay manera.. no se donde está el error
  #10 (permalink)  
Antiguo 01/10/2010, 05:49
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: Hacer subconsulta en update con CONCAT

¿Versión de MySQL?
¿Con qué ejecutas las consultas? ¿Navicat, PhpMyadmin, Workbench, otro?
__________________
¿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: subconsulta, update
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 12:42.