Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usuwanie zdublowanych rekordów w bazie danych
northwest
post
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

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


Witam serdecznie,
Mam bazę danych SQL składającą się z ok 1,5 mln rekordów, z których jakieś 40% to zdublowane wartości.
Chciałbym pousuwać te zdublowane rekordy tak, ażeby nie było więcej niż 1 takiego samego rekordu w bazie.
(czyli żeby nie buło dublujących się wpisów).

Wykombinowałem coś takiego:
  1. <?php
  2. $db = mysql_pconnect("localhost", "northwest", "password");
  3. mysql_select_db("baza") or die("Nastąpił problem z bazą danych!!!!");
  4. mysql_query("SET NAMES 'latin2'");
  5. $table = "tabelka_przeszukiwana";
  6. mysql_select_db($table, $db);
  7.  
  8. $query = "select * from $table ";
  9.  
  10. $res = mysql_query($query, $db)or die("błąd");
  11.  
  12. while($row = mysql_fetch_array($res)) {
  13.    $query2 = "select id from $table where email = '$row[1]'";
  14.    $res2 = mysql_query($query2, $db)or die("błąd w  query2");
  15.  
  16.    $num_record = mysql_numrows($res2);
  17.    if ($num_record > 1){
  18.        echo "DELETE FROM $table WHERE id= '$row[0]' <br/>";    
  19.                $usuwane = "DELETE FROM $table WHERE id= '$row[0]'";
  20.                $kasujemy = mysql_query($usuwane, $db)
  21.        $i++;
  22.    }
  23.    
  24. }
  25. ?>


ten skrypt usuwa wszystkie dublujące rekordy... Wiecie może jak to poprawić?
ps. ten skrypt jest też mega wolny... da się go jakoś zoptymalizować żeby
chodził szybciej?

Z góry dziękuje za pomoc.

Pozdrawiam,
Northwest
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:28