Bir MySql veritabanımızda istenmeyen tekrar eden kayıtlar oluşabilir. Bunları bulup silebiliriz veya değişik işlemler yapabiliriz.
Şimdi bir haberler adında tablomuz olsun içinde baslik alanını kontrol etmek istiyoruz
SELECT id, baslik, count( * ) AS tekrar
FROM tablo_adi
GROUP BY baslik
HAVING tekrar >1
ORDER BY baslik ASC
Bu şekilde tekrar eden kayıt 1'den büyükse yani en az iki defa tekrar ediyorsa listeletecektir.
Çalıştırırken de (PHP'de)
$sql = "SELECT id,baslik, count( * ) AS tekrar
FROM haberler
GROUP BY baslik
HAVING tekrar >1
ORDER BY baslik ASC"; // sql'i değişteke yazdık
$result = $mysqli->query($sql);
while($row = mysqli_fetch_array($result)){
echo $row["baslik"]. "<br>"; // tekrar eden kayıtı gösteriyoruz.
$id = $row["id"]; // id yi alıyoruz
$mysqli->query("delete from haberler where id=$id"); // tekrar eden kaydı siliyoruz
}
Bu şekilde tekrar eden kayıtları bulduk ve sildik.
Tekrar eden kayıt olmaması için bundan sonrası için önlem alabilirsiniz. :)