Autor Tema: cambiar valores de una columna en mysql por otros de columna excel  (Leído 47097 veces)

jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Hola tengo una columna denominada ordering en una tabla mysql con unos 500 registros. Quiero cambiar los valores de esa columna por los valores que tengo en una columna en un archivo excel, ya he probado de varias maneras pero no logro hacerlo. Ayuda por favor!!

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #1 en: 13 de Abril 2013, 07:52 »
Para reemplazar un texto por otro debes usar esto:

UPDATE <nombre_de_la_tabla> SET <nombre_de_la_columna> = REPLACE (<nombre_de_la_columna>, "<texto_a_buscar>", "<texto_a_reemplazar>");

Por ejemplo:

UPDATE jos_content SET city = REPLACE (city, "Venezia", "Venecia");


jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #2 en: 19 de Abril 2013, 10:52 »
gracias pero lo que has dicho es para reemplazar determinado texto por otro, yo lo que necesito no es reemplazar un texto sino toda una columna

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #3 en: 23 de Abril 2013, 08:49 »
Si se quiere que toda una columna tenga un mismo contenido se puede usar la siguiente instrucción:

UPDATE <nombre_de_la_tabla> SET <nombre_de_la_columna> = valor

Por ejemplo UPDATE productos SET precio = 32.50 haría que todos los precios se pusieran con valor 32.50

UPDATE personas SET bloqueado = 'No'    haría que todas las personas se pusieran con un contenido de bloqueado que sería "No"

Hay que tener cuidado con esto porque si haces esto pierdes todos los datos que tuvieras en la columna!!!


jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #4 en: 26 de Abril 2013, 08:18 »
pero eso no es lo que quiero, eso haría que todas las filas tuvieran el mismo valor en esa columna y yo tengo que tener un valor diferente en cada columna

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #5 en: 29 de Abril 2013, 13:40 »
¿Puedes poner un ejemplo de lo que quieres hacer con datos de ejemplo?

jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #6 en: 07 de Mayo 2013, 11:19 »
Sería esto:

Situación de partida en la tabla jos_sobi2_item en la base de datos MySql:

id    name                   size                  ordering
1     Pedro                   178                  47
2     Juan                     9845                23
6     Pedro                   7633                3
9     Manuel                 6321                55



Situación de partida en el archivo excel

id    strate                   ordering
1     up                          5
2     down                     88
6     down                    143
9     up                         8

Imagínate que en vez de 4 sean 500 filas, yo lo que quiero es que los ordering que están en el excel sean los que queden en la base de datos


Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #7 en: 12 de Mayo 2013, 10:51 »
Me va quedando claro, cada id de la primera tabla tiene que quedar con el valor de ordering de la segunda tabla, pero ¿qué hay que hacer con el campo strate que aparece en la segunda tabla?

jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #8 en: 24 de Mayo 2013, 10:43 »
El campo strate no tiene importancia, está ahí porque viene ahí pero en realidad no interviene para nada, se le puede ignorar

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #9 en: 27 de Mayo 2013, 10:47 »
Te voy a ir diciendo los pasos a seguir:

En primer lugar, exporta la tabla que vas a modificar que suponemos se llama mos_tobi2_item y guárdala a modo de backup de seguridad.

En segundo lugar, crea una tabla auxiliar en la base de datos a la que vamos a denominar auxiliar_borrar.

En tercer lugar crea un archivo de excel donde solo tengas los campos que te interesan, en este caso id y ordering (es decir, borra el campo strate que no te interesa). Guarda el archivo excel con el nombre datosLimpios.csv como archivo csv delimitado por comas. Para ello vete en excel a guardar como y en el formato de archivo escoge csv delimitado por comas. Luego importas el archivo datosLimpios.csv a la tabla auxiliar_borrar de la base de datos. Comprueba que en la tabla auxiliar_borrar tengas todo correcto.

Avísame si llegas hasta aquí.


jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #10 en: 28 de Mayo 2013, 00:09 »
ya está hecho lo que has dicho  ;D

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #11 en: 29 de Mayo 2013, 08:25 »
Ok ahora tenemos resumiendo:

Tabla que vamos a modificar: mos_tobi2_item con un campo de referencia itemid y un campo a modificar ordering.
Campo que vamos a modificar de esa tabla: ordering

Tenemos una tabla auxiliar (auxiliar_borrar) donde tenemos los itemid y los valores de ordering nuevos correspondientes a cada itemid.

Hacemos esta consulta:

UPDATE `mos_tobi2_item` JOIN `auxiliar_borrar` on `mos_tobi2_item`.`itemid` = `auxiliar_borrar`.`itemid` SET `mos_tobi2_item`.`ordering`=`auxiliar_borrar`.`ordering` WHERE `mos_tobi2_item`.`itemid`=`auxiliar_borrar`.`itemid`;

Aquí lo que decimos es: actualiza la tabla unión de mos_tobi2_item con la tabla auxiliar_borrar de modo que el campo ordering de mos_tobi2_item se cambie por el campo ordering de auxiliar_borrar siempre que el campo itemid de la tabla mos_tobi2_item sea igual que el campo itemid de la tabla auxiliar_borrar.

Aunque actuamos sobre una tabla intermedia (la unión de 2 tablas) estamos modificando un campo específico y ese cambio quedará reflejado en la tabla mos_tobi2_item, es decir, es un cambio definitivo.

Revísalo primero y si lo ves bien pruébalo

jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #12 en: 31 de Mayo 2013, 10:52 »
¿Por qué me dices que lo revise y que si lo veo bien?

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #13 en: 01 de Junio 2013, 11:05 »
simplemente que tengas cuidado porque si te equivocas puedes perder los datos de la base de datos. Si tienes una copia de seguridad y te equivocas puedes recuperar los datos a traves de la copia de seguridad, simplemente eso

jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #14 en: 02 de Junio 2013, 17:31 »
Ha funcionado perfectamente!!! Gracias!!!

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #15 en: 04 de Junio 2013, 07:57 »
Bueno faltaría una cosa para dejar la base de datos limpia borra la tabla auxiliar_borrar

jockim

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 47
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #16 en: 19 de Julio 2013, 11:18 »
gracias

ferneygomez70

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #17 en: 12 de Septiembre 2015, 07:28 »
hola he visto lo que han comentadoy esta muy bueno, pero cuando importo los datos de excell no me slen todos los datos del campo, emplo

id   nombre_product
1    aluminio 30x 25
2    aluminio 10 x 25


al importar me sale:
id   nombre_product
1    aluminio 30
2    aluminio 10

no muestra completo el texto del campo, os agradezco por la colaboracion

Mastermind

  • Experto
  • *****
  • Mensajes: 540
    • Ver Perfil
Re:cambiar valores de una columna en mysql por otros de columna excel
« Respuesta #18 en: 14 de Septiembre 2015, 19:35 »
Hola ferney ¿puedes poner un enlace desde donde se pueda descargar el archivo de excel con los datos?

Pienso que el problema puede estar en el archivo de excel, por ejemplo que al crear el archivo csv no se estén guardando correctamente los datos

Saludos!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".