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
b_chmura
post
Post #2





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

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


  1. CREATE TABLE `lp_last_read` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(25) NOT NULL,
  4. `link` varchar(255) NOT NULL,
  5. `time` int(11) NOT NULL,
  6. KEY `id` (`id`)
  7. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=25 ;


Proszę bardzo (IMG:style_emoticons/default/smile.gif)

Zasada można się chyba domyśleć z poprzednich zapytań jednak napiszę.
Zapytanie ma usunąć powtarzające się rekordy (czyli takie które mają taką samą wartość w kolumnie "nazwa") zostawiając jeden z najwyższym id/time (time = time())

Staram się zrobić to jednym zapytaniem ewentualnie zapytaniem i podzapytaniem i mi nie wychodzi...
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: 9.10.2025 - 04:12