Ver Mensaje Individual
  #6 (permalink)  
Antiguo 23/12/2009, 06:52
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda crear update con condicional

Creo que gnzsoloyo tiene razón, pero si sólo quieres una actualización de datos ya cerrados puedes usar esto:
Código SQL:
Ver original
  1. UPDATE `tabla` SET codigo = SUBSTRING_INDEX(SUBSTRING_INDEX(numero_inventario,'-',2),'-',-1)
  2.  WHERE numero_inventario REGEXP '[0-9]{4}-[0-9]{4}-[0-9]*-[0-9]*' = 1

la expresión regular controlará que pongas los datos en codigo sólo si antes del primer guión tienes 4 números, otros 4 entre el primer y segundo guión, luego tienes un número indeterminado entre este guión y el siguiente e igual al final. Dejará pues en blanco los codigo de los registros cuyo numero_inventario no cumpla estas condiciones. Luego podrás buscarlos y ver los problemas. También podríamos haber resuelto el problema del código buscando el primer guión y cuatro caracteres, aunque yo he usado dos substring_index.

Y he dicho al principio que gnzsoloyo tiene razón porque si añades un nuevo registro o simplemente lo modificas, tendrás que lanzar el update de nuevo. Lo ideal es hacer un store procedure o controlando y validando con programación con expresiones regulares, antes incluso de incluir o modificar el dato, es decir, con javascript y también con el programa que uses.

Última edición por jurena; 23/12/2009 a las 11:19