Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usunięcie powtarzających się wierszy
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Przez przypadek dodałem sporo danych 2x, tak że mam duplikat każdego. Jak mogę łatwo te duplikaty usunąć? Jest ich kilkaset, więc ręcznie nie bardzo :-)

Na innym forum znalazłem coś takiego:
  1. DELETE FROM Pliki p
  2. [img]http://www.forum.webdiary.pl/images/nums/3.png[/img]WHERE [img]http://www.forum.webdiary.pl/images/nums/4.png[/img] (SELECT count(*) FROM Pliki WHERE rodzaj=p.rodzaj)>1

(http://www.forum.webdiary.pl/ftopic6506.html)
Ale czy to czasem nie usunie wszystkich rekordów? Tj. duplikat i oryginał?


Zrobiłem to z poziomu php - pobrałem wszystkie mecze, nastepnie sprawdzałem dla każdego meczu czy wystepuje duplikat - jeżeli występuje, usuwam aktualny (duplikaty sprawdzam dla każdego na bierząco, więc jeżeli usune duplikat, dochodząc do drugiego meczu już duplikatu nie wykryje, więc go nie usunie).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Marr
post
Post #2





Grupa: Zarejestrowani
Postów: 103
Pomógł: 1
Dołączył: 19.08.2008
Skąd: Warszawa

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


hmmm - wydaje mi się, że najprościej będzie dopisanie magicznego słówka "distinct" w kwerendzie i po sprawie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (SELECT DISTINCT FROM i tak dalej )
Go to the top of the page
+Quote Post
Fixer
post
Post #3





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 24.10.2004
Skąd: TG

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


było już wiele razy...

  1. CREATE TEMPORARY TABLE tmp SELECT DISTINCT * FROM duplikaty; TRUNCATE TABLE duplikaty;
  2. INSERT INTO duplikaty SELECT * FROM tmp; DROP TABLE tmp;


1 linia/polecenie tworzy tymczasową tabelę o nazwie tmp, do której trafia niezduplikowana zawartość naszej tabeli z duplikatami. Duplikaty eliminuje polecenie DISTINCT.

2 linia czyści zawartość tabeli, która przechowuje duplikaty.

3 linia wstawia do wyczyszczonej tabeli z byłymi duplikatami zawartość tabeli tymczasowej, gdzie duplikatów już nie ma.

4 linia usuwa tabelę tymczasową. Gotowe!

Ten post edytował Fixer 7.03.2009, 21:09:29
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #4





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Fajny sposób, dzięki! :-)
Go to the top of the page
+Quote Post

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: 23.12.2025 - 20:38