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

¿Como puedo borrar de una tabla el registro que tiene la fecha más antigua?

Estas en el tema de ¿Como puedo borrar de una tabla el registro que tiene la fecha más antigua? en el foro de Mysql en Foros del Web. Hola a todos, Estoy intentando borrar de una tabla el registro con el campo Fecha más antiguo. He intentado con: Código PHP:  delete from tabla where fecha =( select min ...
  #1 (permalink)  
Antiguo 18/12/2007, 15:02
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 1
¿Como puedo borrar de una tabla el registro que tiene la fecha más antigua?

Hola a todos,

Estoy intentando borrar de una tabla el registro con el campo Fecha más antiguo.

He intentado con:

Código PHP:
 delete from tabla where fecha=(select min(fechafrom tabla); 
pero me dice que....

" You can't specify target table 'tabla' for update in FROM clause"

¿Se os ocurre alguna otra cosa?



Un saludo a todos y gracias.
  #2 (permalink)  
Antiguo 18/12/2007, 16:58
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: ¿Como puedo borrar de una tabla el registro que tiene la fecha más antigua?

Si esa es la sentencia, te faltó el *

Código PHP:
DELETE FROM tabla WHERE <condición
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 18/12/2007, 17:50
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: ¿Como puedo borrar de una tabla el registro que tiene la fecha más antigua?

Muchas gracias por tu respuesta BrujoNic.

El Delete ...no lleva *, no?
  #4 (permalink)  
Antiguo 19/12/2007, 17:06
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: ¿Como puedo borrar de una tabla el registro que tiene la fecha más antigua?

Lo que MySQL te dice es cierto... no puedes referenciar la tabla de la que eliminas para eliminar... podría ser MUY malo....

Pero si te fijas en la documentación de MySQL (http://dev.mysql.com/doc/refman/5.0/es/delete.html) verás que puedes hacer:
DELETE FROM tabla ORDER BY fecha ASC LIMIT 1
  #5 (permalink)  
Antiguo 19/12/2007, 17:08
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: ¿Como puedo borrar de una tabla el registro que tiene la fecha más antigua?

Perdona... un comentario más... si la tabla tiene muchos registros asegúrate de tener un índice por fecha... o de lo contrario tardará digamos... bastante porque tendrá que recorrer toda la tabla, para encontrar la menor fecha (por suerte creo que te podrías ahorrar el file-sort en caso de muchos registros... pero es mejor prevenir)
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:29.