Mysql Üzerinde Lower Kullanırken I Harfi Sorunsalı
-
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
-
sorun çıkaran karakterleri replace kullanarak değiştirsen kalanını lower ile değiştirsen sorunun çözülür gibi
-
utf-8 general ci
ye çevirsene hocam neden utf8md4 kullanıyorsun ?
-
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.
-
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
-
Aynen öyle sorun çıka çıka öğreniyoruz da benim ki iş bitti, 100k fazladan veri girildi sonra ortaya çıktı sorun :D