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

Ayuda crear update con condicional

Estas en el tema de Ayuda crear update con condicional en el foro de Mysql en Foros del Web. Buenas Tengo en una tabla dos campo codigo y numero inventario codigo ----- numero_inventario 1234 ----- 5454-1234-45435-5435435 3232 ----- 4324-3232-4543543-543543 el numero de inventario devbe ...
  #1 (permalink)  
Antiguo 22/12/2009, 16:37
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Ayuda crear update con condicional

Buenas


Tengo en una tabla dos campo codigo y numero inventario

codigo ----- numero_inventario
1234 ----- 5454-1234-45435-5435435
3232 ----- 4324-3232-4543543-543543


el numero de inventario devbe estar formado por 4 partes "separadas por guion"

La idea es que si es posible la consulta me valide si tiene mas o menos partes "cantidad de partes diferente de 4" me le asigne al campo codigo del registro el numero 999. Si cumple con la condicion, el codigo del registro debe ser igual a la segunda parte del numero del inventario "Como esta en el ejemplo"


Espero me puedan ayudar creo que si se puede hacer pero pues no se usr bien los condicionales

Última edición por helacer; 22/12/2009 a las 22:51
  #2 (permalink)  
Antiguo 22/12/2009, 22:04
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Ayuda crear update con condicional

Holas,

Quieres hacer un UPDATE a tu tabla pero a que campo? a "codigo" o "numero_inventario" ???, no entiendo muy bien tu condicion.

Saludos
Gildus
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 22/12/2009, 22:06
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Ayuda crear update con condicional

s me ocurre hagas una función que cuente cuantos guiones hay en la cadena. Si hay 3 guines se podría asumir que hay cuatro partes en la cadena.

Aunque no la tengo para mysql hace poco hice una función para postgres
http://www.forosdelweb.com/f99/ayuda...cadena-742726/

la podrías adaptar a la sintaxis de mysql y comparar el guión.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 22/12/2009, 22:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayuda crear update con condicional

Cita:
La idea es que si es posible ma consult ame valide eso si tiene mas o menos partes me le asigne al campo codigo del registro el numero 999 si cumple con la condicion el codigo delregistro debe ser igual a la segunda parte del numero de l inventario "Como esta en el ejemplo"
Trata de poner comas y puntos a tus textos, porque este prácticamente no se entiende.
AL margen de eso, la tarea de validación que requieres no se puede hacer en una consulta. Deberás implementarla a través de un stored procedure.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/12/2009, 22:22
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Ayuda crear update con condicional

gracias por contestar.


Lo que quiero es actualizar el campo codigo dependiendo la segunda parte del valor del campo numero_inventario "haciendo primero la validacion que comente"... COmo seria?

YA MEJORE LA REDACCION DE LA PREGUNTA PARA QUE ME ENTIENDAN Y ME PUEDAN AYUDAR... GRACIAS

Última edición por helacer; 22/12/2009 a las 22:29
  #6 (permalink)  
Antiguo 23/12/2009, 06:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
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
  #7 (permalink)  
Antiguo 28/12/2009, 20:22
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Respuesta: Ayuda crear update con condicional

Se me habial olvidado agradecerle .. es casi el 100% de lo que necesitaba el resto ya lo complete..

gracias
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 15:59.