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

Cambiar valores en Base Datos de una COLUMNA "Provincia" de registros ya insertados

Estas en el tema de Cambiar valores en Base Datos de una COLUMNA "Provincia" de registros ya insertados en el foro de Bases de Datos General en Foros del Web. Buenos días Foreros! Estoy ahora con una importación de datos, los cuales ya están importados en la tabla clientes. Ahora lo que se me ha ...
  #1 (permalink)  
Antiguo 06/11/2015, 03:51
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 9 meses
Puntos: 17
Cambiar valores en Base Datos de una COLUMNA "Provincia" de registros ya insertados

Buenos días Foreros!

Estoy ahora con una importación de datos, los cuales ya están importados en la tabla clientes.

Ahora lo que se me ha pasado insertar es las provincias de cada cliente, y son unos +2000.

Explico mi tabla contiene pare resumir tres columnas. (Contiene más y además las Provincias van con un rowid numérico pero lo tengo controlado, para resumir pondré sólo los nombres de cada Provincia")


CodCliente, Nombre, Provincia

En cada una esta lo siguiente con +2000 registros

Columna CodCliente:

Cita:
1
2
3
4
5
6
Columna Nombre:

Cita:
Andrés Martinez
Juan
Carlos
Pedro moreno
Miguel Perez
Fénix Ronca
.....
.....
Columna PROVINCIA

Cita:
Vacia por el momento falta importar cada Provincia
Así hasta +2000 clientes, lo que necesito es reemplazar las provincias de cada cliente con consultas SQL.

Los clientes pertenecen a muchas provincias por lo que hacerlo manual es muy tardio.
Andrés Martinez pertenece a Provincia "madrid"
Juan pertenece a Provincia "Barcelona"
Carlos pertenece a Provincia "Cádiz"
Pedro moreno pertenece a Provincia "Albacete"
Miguel Perez pertenece a Provincia "Madrid"
Fénix Ronca pertenece a Provincia "Barcelona"
................

etc....

Como ven hay campos que se repiten, y esto es para +2000 registros en donde todos los registros tienen la PROVINCIA "vacia", porque me falta importar.


Como podría hacer para con una consulta coger todos los registros de "Madrid", luego coger los de "Barcelona" y así con todos.
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #2 (permalink)  
Antiguo 06/11/2015, 08:52
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Cambiar valores en Base Datos de una COLUMNA "Provincia" de registros ya i

y como sabes que provincia es para que cliente?? tienes alguna tabla con esos datos??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 06/11/2015, 10:31
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 9 meses
Puntos: 17
Respuesta: Cambiar valores en Base Datos de una COLUMNA "Provincia" de registros ya i

Los datos de cada provincia para cada cliente vienen en un CSV que pone varias columnas una de ellas es nombres y otra provincias.

Y los clientes ya están en la base de datos, ahora quiero de forma que en una sola consulta SQL pueda importar todos los UPDATE para cada cliente indicarle su provincia.


Una forma, pero no es la más rápida es esta.

Código SQL:
Ver original
  1. UPDATE tabla_clientes
  2. SET provincia = "269"
  3. WHERE nombre IN ( Andres Martinez , Miguel Perez ) ;
  4.  
  5. SET

NOTA: el 269 hace referencia a MADRID , esto es porque la BD tiene unos ID para cada provincia que van indicados en otra tabla unida con la de Clientes.


Esta forma la conozco, pero quisiera saber si en vez de ejecutar UPDATE para cada Provincia, (eligiendo los nombres o cod_cliente de cada cliente en la tabla, existe alguna forma de no tener que repetirlo para cada Provincia los UPDATE.

Que en un sólo UPDATE pueda realizar esto.


También aclaro, los datos los tengo en una columna EXCEL con el orden correcto de cada cliente y cada provincia, si existe alguna forma de introducir correlativamente esos valores uno a uno hacia abajo en la COLUMNA EXCEL, pasandolo a SQL, sería lo perfecto.

Saludos gracias por la ayuda
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #4 (permalink)  
Antiguo 06/11/2015, 11:15
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Cambiar valores en Base Datos de una COLUMNA "Provincia" de registros ya i

podrias hacerlo asi:

Código SQL:
Ver original
  1. UPDATE tabla
  2. SET provincia=completa.provincia
  3. FROM
  4. (
  5. SELECT provincia,usuario FROM provincias AS t1
  6. LEFT JOIN usuarios AS t2 ON (t1.usuario=t2.usuario)
  7. ) AS completa WHERE completa.usuario=tabla.usuario
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 06/11/2015, 11:41
Avatar de HackID1  
Fecha de Ingreso: febrero-2013
Ubicación: En Update
Mensajes: 492
Antigüedad: 11 años, 9 meses
Puntos: 17
Respuesta: Cambiar valores en Base Datos de una COLUMNA "Provincia" de registros ya i

Buenas.

Lo que pienso es que esa subconsulta sirve para cuando las provincias están en la base de datos, y yo las tengo fuera en un EXCEL en una columna.

van correlativas con nombre de cada cliente y su provincia. pero en el excel. En BD no las tengo insertadas.

Porque esto lo estamos realizando para traspasar los datos de un programa de gestion empresarial antiguo a otro nuevo con BD y bastante potente y rápido elaborado en PHP.

Podríamos contactar por skype, es para no entorpecer el Tema y si lo solucionamos comento la respuesta y los pasos que he efectuado para su solución.

Muchas gracias Libras
__________________
Puntuar +1 es buena forma de dar las gracias. :P
Your Time is limited, so don't waste it living someone else´s life.
Por: HackID1
  #6 (permalink)  
Antiguo 06/11/2015, 11:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Cambiar valores en Base Datos de una COLUMNA "Provincia" de registros ya i

Cita:
Iniciado por HackID1 Ver Mensaje
Buenas.

Lo que pienso es que esa subconsulta sirve para cuando las provincias están en la base de datos, y yo las tengo fuera en un EXCEL en una columna.

van correlativas con nombre de cada cliente y su provincia. pero en el excel. En BD no las tengo insertadas.

Porque esto lo estamos realizando para traspasar los datos de un programa de gestion empresarial antiguo a otro nuevo con BD y bastante potente y rápido elaborado en PHP.

Podríamos contactar por skype, es para no entorpecer el Tema y si lo solucionamos comento la respuesta y los pasos que he efectuado para su solución.

Muchas gracias Libras
Tal como lo planteas, solo tienes dos caminos posibles:
1) Lo haces por medio de una aplicación o servicio programado para el caso.
2) Cargas todos los datos del archivo en una tabla temporal por medio de LOAD DATA INFILE de MySQL, y realizas la tarea sugerida por Libras.

Personalmente me inclino por la segunda, que es un método más seguro y rápido.
Lo que seguro tienes que entender es que de otra forma es IMPOSIBLE hacerlo con una única consulta...
__________________
¿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: mysql
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 23:01.