Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]PDO, kasowamie rekordów starszy o 30
KsaR
post
Post #1





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


Jak w temacie,
przykład: shoutbox,
przykład2: mamy 30 rekordów jak jest 31 (lub więcej) to skasuje każdy powyżej 30).

Jednak: Jak to zrobić?
Po dacie - nie wiem jak.
Po id - id może mieć skok nawet o 100. (101, 102, 103, 204)...

edit: dobra pytanie ukończone (moja głupota...)
WHERE id<id(ostatnie id po pętli do 30).
więc to pomysł jaki mi się trafił, chyba że ktoś ma lepszy.

Ten post edytował Ksar 2.11.2014, 23:31:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
grzes999
post
Post #2





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

Ostrzeżenie: (0%)
-----


Nie wiem jakiej bazy używasz w przypadku MySql możesz skorzystać z tego zapytania.

  1. DELETE FROM tabela WHERE id IS NOT IN (SELECT id FROM tabela ORDER BY id ASC LIMIT 30 OFSET 0)


Ten post edytował grzes999 3.11.2014, 12:54:13
Go to the top of the page
+Quote Post
aniolekx
post
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


aby to miało sens (czyli zostawiasz 30 najnowszych), to zamiast ASC powinno być DESC

Cytat(grzes999 @ 3.11.2014, 12:50:47 ) *
Nie wiem jakiej bazy używasz w przypadku MySql możesz skorzystać z tego zapytania.

  1. DELETE FROM tabela WHERE id IS NOT IN (SELECT id FROM tabela ORDER BY id ASC LIMIT 30 OFSET 0)


Ten post edytował aniolekx 3.11.2014, 14:04:21
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 22:35