SORU
22 Temmuz 2010, PERŞEMBE


Kaldırmak MySQL yinelenen satırları

Aşağıdaki alanları içeren bir tablo var:

id (Unique)
url (Unique)
title
company
site_id

Şimdi, satır aynı olması gerekir başlık, şirket ve site_list. Bunu yapmanın bir yolu, bir script (PHP) ile birlikte aşağıdaki SQL kullanarak:

SELECT title, site_id, location, id, count( * ) 
FROM jobs
GROUP BY site_id, company, title, location
HAVING count( * ) >1

Bu sorguyu çalıştırdıktan sonra, çiftleri bir sunucu tarafı komut dosyası kullanarak kaldırabilirsiniz. Ama, eğer bu sadece SQL sorgu kullanarak yapmış olabilir bilmek istiyorum.

CEVAP
22 Temmuz 2010, PERŞEMBE


Çok kolay bunu yapmak için bir şekilde 3 sütun UNIQUE Bir dizin eklemek için. ALTER deyimi yazarken, IGNORE anahtar kelime vardır. Bunun gibi

ALTER IGNORE TABLE jobs
ADD UNIQUE INDEX idx_name (site_id, title, company);

Tüm bu yinelenen satırları düşecek. Kopyası vardır bir yararı INSERTs hata gelecek. Her zaman olduğu gibi, böyle bir şey çalıştırmadan önce bir yedek almak isteyebilirsiniz...

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DavidParody

    DavidParody

    17 EKİM 2009
  • rtisticsdev

    rtisticsdev

    31 Mayıs 2012
  • sinumatic

    sinumatic

    19 Aralık 2006