v2.5.2
Giriş yap

MYSQL JSON Veride Türkçe Karakterli Veriyi Sorgulama

byvenoms
356 defa görüntülendi

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

byvenoms
914 gün önce
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.