Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Usuwanie zduplikowanych wpisow
Agape
post
Post #1





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

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


Mam w tabeli produkty z ich nazwami, do wgrywanych produktow robie dodatkowa kolumne `nazwa_unikalna` gdzie zapisuje tytul obciety do max 50 znakow. Nastepnie mam cos takiego w uproszczeniu:
  1. $produkty_unikalne = array();
  2. foreach ($produkty as $produkty_){
  3. if(in_array($produkty_['nazwa_unikalna'], $produkty_unikalne)){
  4. //jezeli produkt o takiej nazwie juz wystepowal, usuwaj powielony
  5. }else{
  6. //zbieraj unikalne do porownania
  7. $produkty_unikalne[] = $produkty_['nazwa_unikalna'];
  8. }
  9. }

czyli jezeli napotka drugi i kolejny produkt ktory ma taka sama nazwe unikalna, to usuwa go zeby nie bylo takich samych poduktow w bazie. Problem w tym ze baza ma pareset tysiecy rekordow i funkcja ta wykonuje sie pare minut, czym wiecej produktow przerobi tym bardziej zwalnia. Potrzebuje ja zastapic poleceniem sql, zeby zostawialo pierwszy produkt z taka nazwa a usuwalo nastepne, niestety nie mam pojecia jak to zrobic :/

7 minut dokladnie wykonuje sie to zapytanie, jakbym zszedl do 2 byloby idealnie ...

Ten post edytował Agape 25.08.2016, 15:02:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Agape
post
Post #2





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

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


ten kod, baza ma 130 MB i zawiera 130 000 rekordow wiec pewnie dla tego, kazdy produkt sie pobiera pojedynczo i usuwa pojedynczo (jezeli jest zduplikowany) wiec to troche zapytan jest.
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: 7.10.2025 - 13:26