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

  • Mr. H

    Mr. H

    1 Temmuz 2012
  • The Fashion Sight

    The Fashion

    22 AĞUSTOS 2011
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006