Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Pozostawienie tylko unikalnych rekordów
b_chmura
post
Post #1





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


Witam
Chce pozostawić jedynie niepowtarzające się rekordy w bazie. Stosuję do tego:

  1. ALTER IGNORE TABLE `tabela` ADD UNIQUE INDEX(`nazwa`);
  2. ALTER TABLE `tabela` DROP INDEX `nazwa`;


Niby działa dobrze ale! Zostawia najstarszy rekord... ja zaś potrzebuję by to najnowszy nie został usunięty.
Możecie coś poradzić?

Przy okazji jak zostawiać w bazie dla przykładu tylko 5 najnowszych rekordów? Biorąc pod uwagę, że id rekordów nie są "id+1".
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Oto rozwiązania dla problemów:
  1. DELETE FROM lp_last_read WHERE id NOT IN (SELECT id FROM (SELECT * FROM lp_last_read ORDER BY id DESC) AS posortowane GROUP BY posortowane.nazwa);
  1. DELETE FROM lp_last_read WHERE id NOT IN (SELECT id FROM (SELECT * FROM lp_last_read ORDER BY id DESC LIMIT 5) AS piec_ostatnich);
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 - 18:09