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:
<?php
$db = mysql_pconnect("localhost", "northwest", "password");
mysql_select_db("baza") or die("Nastąpił problem z bazą danych!!");
mysql_query("SET NAMES 'latin2'");
$table = "tabelka_przeszukiwana";
mysql_select_db($table, $db);
$query = "select * from $table ";
$res = mysql_query($query, $db)or die("błąd");
while($row = mysql_fetch_array($res)) {
$query2 = "select id from $table where email = '$row[1]'";
$res2 = mysql_query($query2, $db)or die("błąd w query2");
$num_record = mysql_numrows($res2);
if ($num_record > 1){
echo "DELETE FROM $table WHERE id= '$row[0]'
";
$usuwane = "DELETE FROM $table WHERE id= '$row[0]'";
$kasujemy = mysql_query($usuwane, $db)
$i++;
}
}
?>
[/code]
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