Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/08/2013, 10:30
aprendiz69
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 11 meses
Puntos: 0
Actualizar datos de un campo con datos de varios campos

Hola de nuevo,

Esta consulta es una continuación de la ya resuelta en http://www.forosdelweb.com/f86/actualizar-datos-columna-con-datos-otra-columna-otra-tabla-1067933

Ahí, gracias a la ayuda de Leo y la documentación de MySQL, encontré un comando que me permite actualizar el valor del campo post_category de la tabla wp_posts con el valor del campo term_taxonomy_id de la tabla wp_term_relationships cuando el valor del campo ID de la tabla wp_posts es igual al valor del campo object_id de la tabla wp_term_relationships:

Código:
UPDATE wp_posts, wp_term_relationships
SET wp_posts.post_category=wp_term_relationships.term_taxonomy_id
WHERE wp_posts.ID = wp_term_relationships.object_id;
El problema es que esto sólo me sirve en los casos en que una entrada del sitio WP sólo tiene marcada una categoría. Cuando una entrada tiene marcadas dos o más categorías, este comando sólo actualiza el valor de la primera que encuentra.

Así que lo que necesito averiguar ahora es cómo actualizar el campo post_category de la tabla wp_post con todos los valores del campo term_taxonomy_id de la tabla wp_term_relationships en que el valor del campo ID de la tabla wp_posts sea igual al valor del campo object_id de la tabla wp_term_relationships. Y que en el campo post_category de la tabla wp_post los distintos valores sean separados por una coma o el separador que me recomendéis.

Notas importantes:
  1. El número de categorías marcadas en cada entrada de WP es variable (una, dos, tres, etc.).
  2. El resultado de esta consulta no será aplicado en seguir trabajando con dicha base de datos (ya he leído en varios hilos que eso no se recomienda hacerlo así en MySQL), sino en facilitar que el script .py de migración a Plone (CMS basado en Python y Zope) sea más sencillo.

¿Alguien puede darme una pista sobre las funciones o sentencias que tengo que estudiar para poder hacer esto? He leído hilos en que se hacen cosas parecidas con CONCAT, pero siempre con un número de valores y campos fijo. Y no he sabido encontrar ningún hilo o ejemplo análogo al que me interesa (probablemente, porque mi ignorancia sobre MySQL me haya impedido buscar las palabras clave adecuadas).

Gracias de nuevo por la atención y, en su caso, ayuda.

Saludos,

Manuel