[SQL/InnoDB] Limit rekordów i usuwanie po `id`

0

Witam.
Mam tracker GPS który wysyła swoją pozycję na serwer i zostaje ona zapisana.
Chciałbym zrobić sobie coś takiego, że jeśli tracker wyśle pozycję i będzie to rekord o id 51 a limit jest 50 to żeby usunęło mi rekord o id 1 usunęło.

Jakieś pomysły ?

0

Jeżeli to jest faktycznie ikrementowane to można tak:

delete from t where id <=1

Jeżeli jednak te id się przeplataja z innymi to:

delete from t where id not in (select id from t order by id desc limit 50)
0
Panczo napisał(a):
delete from t where id not in (select id from t order by id desc limit 50)

pokazuje mi
#1235 - This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

druga opcja działa lecz trzeba dodatkowe zapytania

1

a tak:

DELETE 
FROM 
    t 
WHERE 
    id NOT IN (select 
                           * 
                    from (SELECT 
                                    id 
                              FROM 
                                   t 
                             ORDER BY 
                                   id DESC LIMIT 50) as i
                       )

1 użytkowników online, w tym zalogowanych: 0, gości: 1