webtegez
İstersen Milyoner Olursun
Kullanıcı
-
Üyelik
04.11.2013
-
Yaş/Cinsiyet
29 / E
-
Meslek
Elektronik Teknikeri - PHP'ci
-
Konum
İstanbul Anadolu
-
Ad Soyad
B** P**
-
Mesajlar
329
-
Beğeniler
100 / 99
-
Ticaret
0, (%0)
Arkadaşlar merhaba;
MYSQL'de 2 gündür takıldığım fakat çözemediğim bi konu için MYSQL bilen arkadaşlardan yardım isteyeceğim.
Benim Mysql tablomda içinde JSON kodları bulunan "deger" adında bir kolonum mevcut. Daha kolay açıklayabilmem için hemen aşağıya örnek 3 adet veri gireceğim.
____________________________________________________________
id | u_id | deger |
==============================================
1 | 3 | {"23": ["0", "1", "2", "3"], "25": ["1", "2", "0"]} |
----------------------------------------------------------------------------------- |
2 | 4 | {"49": ["1"], "52": ["0", "1"], "53": ["2"], "54": ["0"]} |
------------------------------------------------------------------------------------
3 | 2 | {"25": ["1"], "52": ["0", "1"], "53": ["2"], "54": ["0"]} |
------------------------------------------------------------------------------------
Çalıştırdığım SQL Sorgum:
SELECT id, u_id, JSON_SEARCH(deger->'$."23"','one','1') as `23`, JSON_SEARCH(deger->'$."49"','one','1') as `49` FROM tablo_adi
SQL Sorgu Sonucu:
___________________________________
id | u_id | 23 | 49 |
===========================
1 | 3 | "$[1]" | NULL |
------------------------------------------------
2 | 4 | NULL | "$[0]" |
------------------------------------------------
3 | 2 | NULL | NULL |
------------------------------------------------
Tam istediğim ve JSON içinde arayıp bulmak istediğim sonuçlar 23 ve 49 kolunun içlerinde çıktı. Şimdi ben burada 23 ve 49 kolonlarının ikisi de NULL olmayan yani 3. ID olmayan tabloyu gizleyip kalan sonuçların u_id değerlerini almak istiyorum.
Yani amaç şu.
23 ve 49 numaralı kolonlarının her ikisinde en az bir adet olmak şartıyla değer var mı?
Evet var ise: 2 kolonda da NULL değeri içermeyen ID'leri çek. (Yani 1. ve 2. ID'ler)
23 ve 49 kolonlarının herhangi birinde en az bir adet bile olsa değer bulunmadı mı?
Evet ise: Hiçbir sonucu döndürme.
Ben burada
HAVING `23`IS NOT NULL or `49` IS NOT NULL
komutunu çalıştırdığımda birinden birinde boş değer döndüğünde diğer dolu değerleir çektiğini gördüm. Ama benim istediğim birinden birinde boş değer döndüğünde hiçbir değer döndürmemesi.
Daha sonra
HAVING `23`IS NOT NULL and `49` IS NOT NULL
komutunu çalıştırdığımda ise hiçbir sonuç döndürmediğini gördüm.
Umarım anlatabilmişimdir.
Bu konuyu projemin gidişatı için acil çözmem gerekmektedir.
Yardımlarınıza gerçekten çok ihtiyacım var.
Teşekkürler.
Batuhan P. | SoftVore.com
ulas
C# & ASP.NET
Kullanıcı
-
Üyelik
25.07.2016
-
Yaş/Cinsiyet
28 / E
-
Meslek
Full Stack Developer
-
Konum
Diğer
-
Ad Soyad
U** K**
-
Mesajlar
1401
-
Beğeniler
404 / 404
-
Ticaret
18, (%100)
Ufak bi araştırma yaptım, normal bir kolon adı olmuş olsa null olan değerleri hariçte tutabiliyorsunuz. Alias name atandığında '23', '49' gibi sorun burada başlıyor. Bazı sorgular denedim ancak NULL değerini 0 'a döndürmekten başka bir işe yaramadı. PHP bilgim yok ancak, basit bir mantık ile yol gösterebilirim.
PHP'de En iyisi verileri bir listeye çekip null olmayanları almak olacaktır :)
technovenue.com
webtegez
İstersen Milyoner Olursun
Kullanıcı
-
Üyelik
04.11.2013
-
Yaş/Cinsiyet
29 / E
-
Meslek
Elektronik Teknikeri - PHP'ci
-
Konum
İstanbul Anadolu
-
Ad Soyad
B** P**
-
Mesajlar
329
-
Beğeniler
100 / 99
-
Ticaret
0, (%0)
ulas2016 adlı üyeden alıntı
Ufak bi araştırma yaptım, normal bir kolon adı olmuş olsa null olan değerleri hariçte tutabiliyorsunuz. Alias name atandığında '23', '49' gibi sorun burada başlıyor. Bazı sorgular denedim ancak NULL değerini 0 'a döndürmekten başka bir işe yaramadı. PHP bilgim yok ancak, basit bir mantık ile yol gösterebilirim.
PHP'de En iyisi verileri bir listeye çekip null olmayanları almak olacaktır :)
Hocam ilgi ve alakan için gerçekten çok teşekkür ederim.
Evet haklısın. PHP'de mantık yolu ile yapabilirim. PHP konusunda bir çok şeyin üstesinden gelebilecek kadar iyiyim.
Fakat bu benim için en son çare olacak. Hem kendimi daha da geliştirip yeni şeyler öğrenmek, hemde ben kod tarafında her zaman performans ve uzun kodlardan elimden geldiğince kaçan biri olduğum için biraz daha bakacağım.
Eğer sonuç bulamaz isem sizin dediğiniz gibi PHP ile işi geçici süreliğine çözüp daha sonra yavaş yavaş araştırma yapıyor olacağım. :)
Batuhan P. | SoftVore.com
webtegez
İstersen Milyoner Olursun
Kullanıcı
-
Üyelik
04.11.2013
-
Yaş/Cinsiyet
29 / E
-
Meslek
Elektronik Teknikeri - PHP'ci
-
Konum
İstanbul Anadolu
-
Ad Soyad
B** P**
-
Mesajlar
329
-
Beğeniler
100 / 99
-
Ticaret
0, (%0)
ulas2016 adlı üyeden alıntı
webtegez Rica ederim. Bana kalırsa PHP ile çözmelisiniz, SQL sorgunuz ne kadar büyüyor, ne kadar karmaşık işler yapmaya başlıyorsa asıl performans sıkıntısı o zaman başlıyor. En azından şuana kadar araştırdığım kadarıyla böyle biliyorum. Kolay gelsin :)
Haklısınız hocam. Bilginiz için teşekkür ederim. Ben o zaman PHP ile işi çözeyim. Eğer bu sorunumu ilerleyen dönemlerde çözer isem burada paylaşıyor olacağım :)
1 kişi bu mesajı beğendi.
Batuhan P. | SoftVore.com