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

UPDATE (GrAn ProbLemoN)

Estas en el tema de UPDATE (GrAn ProbLemoN) en el foro de Bases de Datos General en Foros del Web. cuando envio un UPDATE a un usuario repetido no se como hacer para que se aplique 2 veces. EJ: UPDATE cuentas SET alerts=alert+1 WHERE usuario ...
  #1 (permalink)  
Antiguo 16/08/2010, 14:55
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Información UPDATE (GrAn ProbLemoN)

cuando envio un UPDATE a un usuario repetido no se como hacer para que se
aplique 2 veces. EJ:

UPDATE cuentas SET alerts=alert+1 WHERE usuario IN ('pepito','lolito','pepito');

Como pueden ver pepito esta 2 veces, es decir que se le deben sumar 2 alerts
pero solo se le suma 1 !

De ser posible como podria yo indicarle a mysql que al repetirse el usuario aplicar de nuevo?

pero en el mismo update sin necesidad de crear otro debido a que en el script real hablamos de mas de 2 millones de usuarios y si el nombre de usuario se repite mas veces sumando ademas los otros usuarios que se repetiran tambien , sera un problema en TIME! y nito reducirlo lo mas posible

GRAX!!!!!
  #2 (permalink)  
Antiguo 16/08/2010, 18:20
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: UPDATE (GrAn ProbLemoN)

Cita:
cuando envio un UPDATE a un usuario repetido no se como hacer para que se
aplique 2 veces. EJ:
Si el usuario aparece más de una vez, simplemente el UPDATE se aplicará en cada aparición.
Cita:
Como pueden ver pepito esta 2 veces, es decir que se le deben sumar 2 alerts
pero solo se le suma 1
Estas razonando mal el problema. Si en la lista del IN un valor se repite es irrelevante, porque la ejecución no es iterativa. El IN devolverá TRUE ante la primera aparición y no buscará más en la lista. Y aunque lo hiciese, la en sí operación no es iterativa como la está planteando, sólo se ejecuta una sola vez por valor y registro, porque la comparación se hace contra un campo de un registro, y ese campo en cada registro sólo puede contener un único valor por instancia.
Existen algunas alternativas para hacer lo que pides, pero para darte una respuesta concreta sería mejor que expliques bien el problema:
¿Qué es exactamente lo que quieres lograr?
Sabemos que en la tabla tienes usuarios repetidos N veces, por lo que lo que deseas es... ¿hacer una numeración incremental de cada aparición de cada usuario?
¿Eso sería?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/08/2010, 18:30
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: UPDATE (GrAn ProbLemoN)

aja!! eso mismo!! que si cierto usuario aparece N veces por cada una se le sume 1 alert!!

Podrias o podria alguien decirme como lograrlo ?

Última edición por Bigcrime; 17/08/2010 a las 08:52

Etiquetas: 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 21:10.