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

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • eyes4beautee

    eyes4beautee

    17 HAZİRAN 2011