folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder Mysql Üzerinde Lower Kullanırken I Harfi Sorunsalı



Mysql Üzerinde Lower Kullanırken I Harfi Sorunsalı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Mysql 5.7.24 kullanıyorum.

    Charset: utf8mb4

    Colalte: utf8md4_unicode_ci

     

    Php kısmında küçülttüğüm harflerde I harfleri i olarak küçülüp veritabanına kaydedildiği için bir sorun yaşadım.

    MySql tarafında aşağıdaki gibi bir sorgu yazdım;

    UPDATE singers SET letter=IF(LEFT(TRIM(singers.name), 1) = 'I', 'ı', LOWER(LEFT(TRIM(singers.name), 1)))

    Amacım name alanındaki ilk harf I ise ı olarak letter güncellensin. Eğer I değilse normal lower fonksiyonu ile küçültsün. Fakat bu kullanımda İ yani büyük harf olan i harfleri de ı yani küçük harfe ı harfine döndü.

    Yaptığım aramalarda sorgunun sonuna collate ekleme gibi cevaplar vardı, onları da denedim fakat sonuç alamadım.

    Mysql tarafında Convert ile utf8m4 olarak convert ettiğimde de sonradan lower kullandığım için yine bir işe yaramadı. Convert içinde lower kullanınca da zaten convert e muhattap olana kara I harfi i ye çevrilmiş oluyor. Dönüp dolaşıp kuyruğumu kovaladım yani.

    Bu konuda bilgisi olan biri varsa yardımcı olursa sevinirim.

     

    Çok fazla veri olduğu için php ile tablo üzerinde işlem yapmaya pek sıcak bakmadım


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    edminkardes
    edminkardes's avatar
    Kayıt Tarihi: 16/Haziran/2015
    Erkek

    sorun çıkaran karakterleri replace kullanarak değiştirsen kalanını lower ile değiştirsen sorunun çözülür gibi

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    utf-8 general ci

    ye çevirsene hocam neden utf8md4 kullanıyorsun ?


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek
    MhmdAlmz bunu yazdı

    utf-8 general ci

    ye çevirsene hocam neden utf8md4 kullanıyorsun ?

    Laravel de default olarak utf8mb4 geldiği için hiç değiştirmedim. Sonra da gidip Str facade üzerinden lower kullandım. I harfinde sorun olacağını öngöremeyinxe böyle oldu hocam.

    Tablo charset değiştirip , Str facade ait lower methodunu override ettim. Şimdilik düzeldi, bana da ders oldu.


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    coder2 bunu yazdı
    MhmdAlmz bunu yazdı

    utf-8 general ci

    ye çevirsene hocam neden utf8md4 kullanıyorsun ?

    Laravel de default olarak utf8mb4 geldiği için hiç değiştirmedim. Sonra da gidip Str facade üzerinden lower kullandım. I harfinde sorun olacağını öngöremeyinxe böyle oldu hocam.

    Tablo charset değiştirip , Str facade ait lower methodunu override ettim. Şimdilik düzeldi, bana da ders oldu.

    Hatalar yapıla yapıla öğreniliyor :D Benim de Like Queryler çalışmıyordu kafayı yiyecektim :PPP Sonradan ders olmuştu ama yolun başında aldım o sorunu :D


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Aynen öyle sorun çıka çıka öğreniyoruz da benim ki iş bitti, 100k fazladan veri girildi sonra ortaya çıktı sorun :D 


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
Toplam Hit: 1176 Toplam Mesaj: 6
mysql lower utf8