Sto provando a convertire la seguente query SQL in ActiveRecord e mi sta sciogliendo il cervello.ActiveRecord: selezionare il limite massimo
delete from table where id <= (
select max(id) from (
select id from table order by id limit 0, 10));
Qualche idea?
Quello che sto cercando di fare è limitare il numero di righe nella tabella. Quindi, voglio cancellare tutto ciò che è inferiore alle 10 voci più recenti.
modifica: Trovato una soluzione combinando diverse delle risposte di seguito.
Temperature.where('id < ?', Temperature.order('id DESC').limit(10).pluck(:id).min).destroy_all
Questo mi lascia con le ultime 10 voci.
In realtà, quello che sto cercando di fare è limitare il numero di righe nella tabella. Quindi se ci sono 11, cancella 1. 15 cancella 5. – LifeOfRPi
@LifeOfRPi Ok, penso che possiamo farlo, aggiornando la risposta ... –