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

  • kidrauhl

    kidrauhl

    15 Ocak 2007
  • PC Learning Zone - Computer Training

    PC Learning

    8 EYLÜL 2006
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006