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

Ayuda con update de registros

Estas en el tema de Ayuda con update de registros en el foro de Mysql en Foros del Web. Como estan? Tengo una tabla mysql donde uno de los campos guarda el serial de unos productos. Alguns quedaron mal generados. La idea es que ...
  #1 (permalink)  
Antiguo 18/01/2011, 13:56
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 10 meses
Puntos: 50
Ayuda con update de registros

Como estan?


Tengo una tabla mysql donde uno de los campos guarda el serial de unos productos.
Alguns quedaron mal generados. La idea es que hasta el momento los que estan bien generados deben tener algo como este

P-154001230087-5400167562-0123 "La letra y el numero de caracteres entre los guiones puede variar"


Ahora lo que necesio hacer es buscar todos los registros que tengan el formato correcto y actualizarlos dejando unicamente del primer guion en adelante hasta el ultimo guion, osea este registro debe quedar 154001230087-5400167562


Me pueden colaborar con el update para esto? gracias
  #2 (permalink)  
Antiguo 18/01/2011, 16:45
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: Ayuda con update de registros

Cita:
Iniciado por helacer Ver Mensaje
P-154001230087-5400167562-0123 "La letra y el numero de caracteres entre los guiones puede variar"
Hola helacer, si los registros que hay que modificar siempre tienen UNA SOLA LETRA Y DESPUÉS EL GUIÓN, se me ocurre que puedes hacer algo como esto:

Código MySQL:
Ver original
  1. create table pruebaUpdate (columna varchar(50));
  2. insert into pruebaUpdate values
  3. ('P-154001230087-5400167562-0123'),
  4. ('111111111111-1111111111'),
  5. ('R-33-33333333333333333333333-3333333'),
  6. ('W-55555-55555-55'),
  7. ('222222222222-2222222222');
  8.  
  9. update  pruebaUpdate set columna =
  10. substring(columna, instr(columna, '-') + 1,
  11. (length(columna) - instr(reverse(columna), '-') + 1) - (instr(columna, '-') + 1))
  12. where instr(columna, '-') = 2;
  13.  
  14. select * from pruebaUpdate;
  15.  
  16. drop table pruebaUpdate;

Haz la prueba a ver si es lo que necesitas.

Saludos
Leo

Etiquetas: registros, 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 16:15.