Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/12/2011, 11:05
Avatar de gnzsoloyo
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, 2 meses
Puntos: 2658
Respuesta: Restar un valor hasta llegar a 0

Yo entendí perfectamente, pero cuando se trata de SQL, el que uses PHP, VB, C++, C# o LINQ es absolutamente irrelevante para el asunto. El SQL y la base de datos son independientes de los lenguajes de programación, por lo que que lo ejecutes en uno determinado no hace al problema.
Además, vos en ese párrafo no preguntabas por la consulta a la base, sino que hablabas de la iteración de la operación en el script... de PHP.

Yendo al asunto en cuestión, la consulta para lograr lo que quieres es muy elemental, especialmente porque quieres que se aplique:
1) A todos los registros donde el valor de la columna sea mayor a cero (0).
2) Procese toda la tabla donde ese valor cumpla la condición, sin otra distinción.
O sea que estamos hablando de un UPDATE masivo con una sola condición...

Algo como
Código MySQL:
Ver original
  1. UPDATE usuarios
  2. SET dias = dias-1
  3. WHERE dias > 0;
o bien:
Código MySQL:
Ver original
  1. UPDATE usuarios
  2. SET dias = IF(dias > 0, (dias-1), dias);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)