[Çözüldü] 50 Bin başlık, Hangileri Çift!

Başlatan yakusha, 12 Şubat 2016 - 03:33:47

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

yakusha

Google Dublicate Content konuusunda biraz fazlasıyla hassas. Şimdiye kadar bu hassasiyeti dikkate almayarak haber sitesine başlıklar atılmış. Şu an 40/50 bin civarı başlık var.

Bu başlıkların hangilerinin çift olduğunu Saf MySQL veya PHP ve MySQL kullanarak nasıl tespit edebilirim.

Elimde şöyle bir fonksiyon zaten var; lakin bu fonksiyon ile en az 50 bin sorgu çalışması gerekecektir :(

Alıntı Yappublic function get_content_id_from_title($title, $id)
      {
         /**
         * Başlıkların dublicate olması durumuna karşı
         * dublicate başlık kontrolü için kullanılır
         */
         if($title == "") return false;
         
         $sql = 'SELECT
                  content_id
               FROM
                  '.T_CONTENT.'
               WHERE
                  content_status = 1
               AND
                  content_id <> '.$id.'
               AND
                  content_title_inside = "'.$title.'"';
         return $this->conn->GetOne($sql);
      }      
      
Artık bu forumu kullanmıyor.

cagriemer

SELECT baslik FROM haberler GROUP BY baslik HAVING count(*) >= 2

Yukaridaki gibi bir sorgu is gorur mu acaba?

Felâsife

Ben WP de 20.000 den fazla iletiyi (post_content 'i) tarayarak, çiftleri ve daha fazlasını bu kodla PhpMyAdmin le tespit etmiştim.
Ekrana basanlar çift ve daha fazla sayıda olanlar oluyor.
select ID,post_author,post_title,count(*) from wp_posts group by post_content having count(*) > 1

baştaki ID,post_author,post_title ler ekrana basılıyor, oraya kriterlerini eklersin, azaltmak çoğaltmak senin elinde, datana göre ayarlarsın, sonda ki post_content ise sayı ile gösteriliyor zaten.

Silme işide başında ki select i kaldırıp, DELETE FROM getirirsin ama yedekli çalış, bir kaza olmasın.
Maceraya hazır mısın!  Bir BSD almaz mısın?

yakusha

SELECT content_id, content_title, count(*) FROM content WHERE content_status = 1 GROUP BY content_title HAVING count(*) > 1 ORDER BY content_id DESC;

İlk deneme, 266 içerik döndürdü.  Rekor çift başlıklarımız "Gazete Manşetleri"(29) ve "İstanbulda Elektrik kesintisi"(13)

Lakin bu 29 başlığın id bilgilerimi elimizde yok... Yine de 50 bin içeriği aratmaktansa, bu başlıktaki içerikleri düzenlemeleri iyidir...

İşi ilerletirsek; bu sorgu sonrasında elimizdeki title değerinden arama yapıp o title değerine sahip içerikleri de listeleriz ki bitti!

Çok teşekkürler @çağrı bey @felasife

Artık bu forumu kullanmıyor.

neynefes

Katkı yapacak var mıdır yoksa kapatalım mı başlığı? Hani konu hakkında bilgim olmadığı için soruyorum.