23.10.2009

| Veritabanı | 6 yorum

MySqlde Türkçeleştirme Operasyonu

MySqlde Türkçeleştirme Operasyonu

MySql’ de çoklu kayıtlarla uğraşırken, PHP ile Türkçe karakterleri düzeltmek yerine phpmyadmin’den sorgu ile toplu değişim yapabilirsiniz.

UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'þ', 'ş' ) WHERE alan_adi LIKE '%þ%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'Ãz', 'Ş' ) WHERE alan_adi LIKE '%Ãz%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'Ç', 'Ç' ) WHERE alan_adi LIKE '%Ç%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'ç', 'ç' ) WHERE alan_adi LIKE '%ç%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'Ã?', 'Ö' ) WHERE alan_adi LIKE '%Ã?%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'Ö', 'Ö' ) WHERE alan_adi LIKE '%Ö%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'ö', 'ö' ) WHERE alan_adi LIKE '%ö%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'ü', 'ü' ) WHERE alan_adi LIKE '%ü%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'ð', 'ğ' ) WHERE alan_adi LIKE '%ð%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'ý', 'ı' ) WHERE alan_adi LIKE '%ý%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'Ü', 'Ü' ) WHERE alan_adi LIKE '%Ü%';

UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'þ', 'ş' ) WHERE alan_adi LIKE '%þ%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'Þ', 'Ş' ) WHERE alan_adi LIKE '%Þ%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'Ý', 'İ' ) WHERE alan_adi LIKE '%Ý%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'ý', 'ı' ) WHERE alan_adi LIKE '%ý%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'Ð', 'Ğ' ) WHERE alan_adi LIKE '%Ð%';
UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, 'ð', 'ğ' ) WHERE alan_adi LIKE '%ð%';
  1. güzel düşünülmüş bir çalışma. elinize sağlık

  2. western diyor ki:

    Ben zamanında sql dosyasında aratarak replace all ile değiştirmiştim. Burayı gördüğümüz iyi oldu.

  3. merhaba bende ş ve ğ harfleri için sizin verdiklerinizde olmayan cins bi şekil var onu girdiğimde hata veriyor sql ş ve ğ harflerine ÅŸ bu şekli vermiş nasıl düzeltiriz.

    — #1267 – Illegal mix of collations (latin5_turkish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation ‘like’ —

    bu hatayı veriyor.

    • Altan Tanrıverdi diyor ki:

      Başkalarının sana doğrudan söylemeyeceği şeyle başlayayım: Bu devirde latin mi kaldı? Tüm tabloları ve rowları utf8_general_ci veya utf8_turkish_ci ye çevir sonra ş ve ğ ler hala sorunlu ise

      UPDATE tablo_adi SET alan_adi = REPLACE (alan_adi, ‘þ’, ‘ş’ ) WHERE alan_adi LIKE ‘%þ%’;

      yapısını kullanabilirsin. Ancak þ gördüğün yere ÅŸ gibi kendi aldığın hataları ve ş yerine de dönüşmesi gereken karakteri girersin.

    • Şirket bünyesinde yapılan çalışmada benden önce set ile latin 5 yapılmış veritabanındaki türkçe karakterler bozulmuştu. Bunu php ile değiştiririm diye düşünürken bu komutu görmek iyi geldi…

  4. Tum alanlari cevirirken gene’de php ye ihtiyacımız olabileceğini düşünüyorum.

Cevap gönder