Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Usuwanie zduplikowanych rekordó z bazy
--Mati--
post
Post #1





Goście







Mam jeszcze taki problem, zdarza się, że w bazie jest kilka rekordów, które mają taki sam 'link'.
Chciałbym, aby pozostał tylko 1 rekord z takim linkiem a wszystkie inne zostały usunięte, więc napisałem taki skrypcik:

  1. $sql = "select link, count(*) from pliki group by tytul";
  2. $ans = mysql_query($sql);
  3. $deleted = 0;
  4. while (list($tytul, $cnt) = mysql_fetch_array($ans)) {
  5. if ($deleted > 10000) exit;
  6. if ($cnt > 1) {
  7. $cnt2 = $cnt - 1;
  8. $deleted ++;
  9. $sql2 = "delete from pliki where link = '$tytul' limit $cnt2";
  10. mysql_query($sql2);
  11. }
  12. }
  13. echo $deleted;


Zanim go odpalę chciałbym zapytać was o opinię, czy to zadziała (usunie duplikaty i zostawi tylko 1 rekord) i nic mi nie zepsuje w bazie ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Hpsi
post
Post #2





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

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


Wybacz moja szybka odpowiedz ale trzeba podziekować pkp ze 2h mi się pociag spoznil ;d

  1. $zapytanie = mysql_query('SELECT DISTINCT(`tytul`) AS `key`, `id` FROM `pliki`');
  2. while($r = mysql_fetch_array($zapytanie))
  3. {
  4. mysql_query('DELETE FROM `pliki` WHERE `tytul`="'.$r['key'].'" AND `id`!='.$r['id'];
  5. }


Ten post edytował Hpsi+ 27.06.2011, 20:16:55
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: 28.12.2025 - 06:44