Mysql database’de Toplu Kelime Değiştirmek (sql replace)

Bilgisayar Database Mysql

Mysql database’de Toplu Kelime Değiştirmek (sql replace)

sql replace Kalıp

UPDATE tablo_adınız
SET alan_adınız = REPLACE(alan_adınız, 'eski kelime', 'yeni kelime')
WHERE alan_adınız LIKE '%eski kelime%'

Örneğin wordpress e toplu bir yükleme yaptık. Başlıklarda yazan ortak bir kelimeyi veya cümleyi değiştirmek istedik. Cümlemiz “Yeni Yazımızda” ile başlasın veya içersin ,bunu “Bu Makalemizde” şeklinde değiştirmek istiyoruz. Başlıkta ne yazarsa yazsın ,içinde geçen “Yeni yazımızda” cümlesini alacak ,yerine “Bu Makalemizde” yazacak. Önünde sonunda ortasında yazan hiçbir cümleye dokunmayacak. Odak kelimemizle oynayıp çıkacak. Yukarıdaki şablona uyarlayacak olursak ;

Örnek

UPDATE wp_posts 
SET post_title = REPLACE(post_title,'Yeni Yazımızda','Bu Makalemizde') 
WHERE post_title LIKE '%Yeni Yazımızda%'

 

Aynı şablonu sadece wordpress’te değil mysql database kullandığımız her alanda kullanabiliriz.

Türkçe karakter problemi yaşamızsanız ve database de harfler doğru yazılmamışsa bu sql replace yöntemi’de size ilaç olacaktır. ğ yazması gerekirken database’e ð olarak kayıt yapılmış veriyi düzeltmek istersek ;

 

UPDATE tablo_adım 
SET suradaki_alan = REPLACE(suradaki_alan,'ð','ğ') 
WHERE suradaki_alan LIKE'%ð%'

 

5 thoughts on “Mysql database’de Toplu Kelime Değiştirmek (sql replace)

  1. Teşekkürler hocam benim php sitem var epey eski bir sistem thersin portal şeklinde, bunda bir sürü harf hatası meydana geldi ı, ş, ğ, ü, ö, ç gibi karakterler örnekte (C�neyt Ark�n’�n Ailesi Kaza Ge�irdi) olduğu gibi çıkıyor, bunları düzeltmem için bana pratik bir yol gösterirseniz minnettar olurum.

    1. verileri database tarafında utf8_general_ci olarak tutmadığınızdan kaynaklanıyor gibi geldi sorun bana. Muhtemelen latin_swidish gibi birşey olabilir. Aşağıdaki örneklerde yardımcı olmaya çalıştım. Varolan verilere dokunmadan dil kodlamasıyla sorunu halletmeye çalışın.

      Php tarafında sayfanın en üstüne php tagının başladığı yerin hemen altına şunu ekleyin
      header(‘Content-Type: text/html; charset=utf-8’);

      ve/veya

      database bağlantısının çağrıldığı dosyada ,bağlantı tanımlama satırının (örneğin: $baglan= mysql_connect(‘sunucu’, ‘kullanici_adi’, ‘sifre’); ) hemen altına şunu ekleyin;
      mysqli_set_charset($baglan,”utf8″);

  2. $baglan=mysql_connect($sunucu,$username,$password);
    mysqli_set_charset($baglan,”utf8″);
    mysql_query(“SET NAMES UTF8”);

    ikinci yöntemi denedim baglan.php ye söylediğiniz satırı ekledim. Değişen bir şey olmadı

  3. UPDATE wp_posts
    SET post_title = REPLACE(alan_adınız,’Yeni Yazımızda’,’Bu Makalemizde’)
    WHERE post_title LIKE ‘%Yeni Yazımızda%’

    Burda replace sonrası parantez içi alan_adınız değil de post_title olmayacak mı?

    Serdar
    kuyumcenter.com

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir