SQL - Limitar cantidad de filas y/o registros
Saludos a todos Necesito en una base de datos guardar solo los últimos 5 registros. Me explico mejor en una tabla guardo una fecha y un un numero telefónico, y solamente debo permitir los 5 registros mas recientes. Ejemplo si la tabla esta con los siguientes datos, --Fecha Tel 13-11-2011 3159991 14-11-2011 3160989 14-11-2011 3125678 15-11-2011 3213456 16-11-2011 3113255 y se desea adicionar el siguiente registro 16-11-2011 3440989, la tabla debe quedar así: --Fecha --Tel 14-11-2011 3160989 14-11-2011 3125678 15-11-2011 3213456 16-11-2011 3113255 16-11-2011 3440989 Esto como se puede hacer? Gracias de antemano También te puede interesar...
Hola JP, no nos comentas que tipo de base de datos estas utilizando, por lo que te lo muestro en MySQL... La manera de hacerlo en una misma instrucción seria algo así: DELETE t FROM
`tabla` t LEFT JOIN (SELECT Fecha FROM `tabla` ORDER BY Fecha DESC limit 4,1) as x
ON t.date<x.date
WHERE x.date is not nullLa manera de hacerlo en dos instrucciones seria algo así: 1.- Obtenemos el 5 registro SELECT Fecha FROM `tabla` ORDER BY Fecha DESC LIMIT 4,1 2.- Eliminamos todo lo que sea anterior a esa fecha dada DELETE FROM `tabla` WHERE Fecha<La fecha resultante de la consulta anterior. Espero que te sirva.
Gracias XVE Haciéndole algunos ajustes me sirve mucho tu respuesta. Ya que no deseo borrar los datos sino mantener siempre los 5 mas recientes. Muchas greacias DELETE de un SELECT (URGENTE!!) Query Basico |