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

Restar asi, se puede?

Estas en el tema de Restar asi, se puede? en el foro de Mysql en Foros del Web. Hola, mi pregunta es... se puede restar a toda una columna si cumple una condicion? Ejemplo: +------+ | NUM | -------- | 1 | -------- ...
  #1 (permalink)  
Antiguo 15/04/2009, 09:19
Avatar de bacc  
Fecha de Ingreso: febrero-2009
Ubicación: Argentina
Mensajes: 33
Antigüedad: 15 años, 1 mes
Puntos: 1
Pregunta Restar asi, se puede?

Hola, mi pregunta es... se puede restar a toda una columna si cumple una condicion?


Ejemplo:

+------+
| NUM |
--------
| 1 |
--------
| 2 |
--------
| 3 |
--------
| 4 |
--------

en esta tabla borro el 2

+------+
| NUM |
--------
| 1 |
--------
| 3 |
--------
| 4 |
--------

y quiero que al 3 y el 4 restarle 1 pera que me quede:

+------+
| NUM |
--------
| 1 |
--------
| 2 |
--------
| 3 |
--------

Existe alguna forma?
  #2 (permalink)  
Antiguo 15/04/2009, 09:26
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 8 meses
Puntos: 18
Respuesta: Restar asi, se puede?

Código:
UPDATE TABLE tu_tabla SET num = num - 1 WHERE num = 3
UPDATE TABLE tu_tabla SET num = num - 1 WHERE num = 4
No es obviamente la forma mas 'automática' de hacer las cosas pero servirá para tus propósitos, al menos según lo que preguntas.
__________________
Usuario Reigistrado de linux #399288
  #3 (permalink)  
Antiguo 15/04/2009, 09:30
Avatar de bacc  
Fecha de Ingreso: febrero-2009
Ubicación: Argentina
Mensajes: 33
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: Restar asi, se puede?

el problema es q no conzoco cuantos numeros tengo... puedo tener 4 como puedo tener 20.-
  #4 (permalink)  
Antiguo 15/04/2009, 09:52
Avatar de Acron_0248  
Fecha de Ingreso: junio-2005
Ubicación: 127.0.0.1
Mensajes: 1.648
Antigüedad: 18 años, 8 meses
Puntos: 18
Respuesta: Restar asi, se puede?

Si estarás trabajando directamente con mysql (es decir, no usarás php o .net o java o ruby o similar para ejecutar las consultas) tal vez podrías utilizar procedimientos o algún control de flujo como LOOP, REPEAT o ITERATE pero allí si no puedo ayudar porque no son cosas que he utilizado =/
__________________
Usuario Reigistrado de linux #399288
  #5 (permalink)  
Antiguo 15/04/2009, 10:04
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Restar asi, se puede?

Efectivamente como Acron_0248 te dice se puede.
Ahora, si sabes donde se encuentra el hueco que quieres corregir lo puedes hacer con:

Código mysql:
Ver original
  1. UPDATE TABLE tu_tabla SET num = num - 1 WHERE num > numero_faltante

Sin embargo, no se que esperas lograr con esto. Si el campo num es una clave primaria, no se puede realizar. Si es un auto_increment, no es recomendable cambiar los códigos o campos que representan un registro, solo por establecer un orden en tu tabla. Esto puede generarte muchos problemas el campo esta relacionado con otra tabla.
Si lo haces por espacio no deberías preocuparte si tienes 10, 100 o 1000 huecos. Si la cantidad de datos es muy grande utiliza un campo tipo long o algo que te soporte mas registros.

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 13:38.