MYSQL JSON Veride Türkçe Karakterli Veriyi Sorgulama
Merhaba, veritabanımda json veriler var ve json veriler içinden sorgulama yapmam gerekiyor. Şu şekilde kullanıyorum:
SELECT * FROM `siparisler` WHERE JSON_EXTRACT(`musteriler`, '$[*].isim') LIKE '%Enes%'
Böyle kullandığım zaman hiçbir sorun yok fakat içinde Türkçe karakter geçen bir veri aramak istediğim zaman veriyi bulamıyorum. Soyadımdan örnek olarak gideyim
SELECT * FROM `siparisler` WHERE JSON_EXTRACT(`musteriler`, '$[*].isim') LIKE '%Hürüm%'
Hiçbir sonuç dönmüyor. İncelediğim zaman ü harfleri \u00fc
şeklinde kayıt edilmiş olarak görünüyor. Dedim o zaman ü harflerinin yerinen \u00fc
yazarak arama yapayım.
SELECT * FROM `siparisler` WHERE JSON_EXTRACT(`musteriler`, '$[*].isim') LIKE '%H\u00fcr\u00fcm%'
Fakat böyle de bir sonuç dönmüyor. \u00fc
yazıp aradığım zaman sonuç dönüyor ama sadece 1 harfine bakarak aramış oluyorum. Çözümünü bilenlerden yardım talep ediyorum. Teşekkür ederim
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
SELECT * FROM `siparisler` WHERE JSON_EXTRACT(REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(`musteriler`,
'\\u00e7', 'ç'),
'\\u011f', 'ğ'),
'\\u0131', 'ı'),
'\\u00f6', 'ö'),
'\\u015f', 'ş'),
'\\u00fc', 'ü'),
'\\u00c7', 'Ç'),
'\\u0130', 'İ'),
'\\u011e', 'Ğ'),
'\\u00d6', 'Ö'),
'\\u015e', 'Ş'),
'\\u00dc', 'Ü'), '$[*].isim') LIKE '%Hürüm%'
Çözümü böyle bulabildim. Daha kısa bi çözümü olan varsa bilgi verebilir.