MySQL 4.0 da Alan parçalayarak parçalara göre sıralama
MySQL 4.0 da Alan parçalayarak parçalara göre sıralama
Merhaba arkadaşlar,
Yapmak istediğim şey şu, örnek veriyorum.
PNO
-----------
12558-224
13654/336
155747:56
------------
yukarıdaki gibi string değerler alabilen bir alanım var, benim amacım - , / yada : gibi rakamdan farklı olan karaktere kadar olan bir kısmını bir sanal alana karakterden sonraki kalan kısmı ise 2.bir farklı bir alana parçalayarak çıkan sonuç alanlarına göre sıralama yaptırmak.
Umarım açık bir şekilde anlatmışımdır.
İlgilene arkadaşlara şimdiden teşekkürler.
Veri tabanım MySQL 4.0
Yapmak istediğim şey şu, örnek veriyorum.
PNO
-----------
12558-224
13654/336
155747:56
------------
yukarıdaki gibi string değerler alabilen bir alanım var, benim amacım - , / yada : gibi rakamdan farklı olan karaktere kadar olan bir kısmını bir sanal alana karakterden sonraki kalan kısmı ise 2.bir farklı bir alana parçalayarak çıkan sonuç alanlarına göre sıralama yaptırmak.
Umarım açık bir şekilde anlatmışımdır.
İlgilene arkadaşlara şimdiden teşekkürler.
Veri tabanım MySQL 4.0
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
calcfield kullanabilirsin ama bu alana göre sıralama yapmak için grid kısmında yada tüm tabloyu memtable a atıp orada sıralattırabilirsin. ama tavsiyem bu alanları 2 field olarak sakla girerken 2 edit ile girilsin, grid içinde gösterirken gene bir calcfield ile birleştirip görebilirsin.
ayırma işlemini copy pos larla yapmam gerek ya birden fazla kaza ilede olsa sayıdan başka birşey girilmişse kontrolüde yapman gerek
kolay gele
ayırma işlemini copy pos larla yapmam gerek ya birden fazla kaza ilede olsa sayıdan başka birşey girilmişse kontrolüde yapman gerek
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Sayın, freeman35 alakan için teşekkürler,
ben bu olayı kesinlikle veritabanı seviyesinde yapmak zorundayım.
yani bana bunu yapan MySQL Function'u,(ları) lazım.
Teşekkürler.
ben bu olayı kesinlikle veritabanı seviyesinde yapmak zorundayım.
yani bana bunu yapan MySQL Function'u,(ları) lazım.
Teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Mysql 5.0 için denedim, kullanılan fonksiyonlar 4.0 da da var ancak order by içinde parçalanan alanı görür mü bilmiyorum
şöyleki;
metin diye bir alan var aralıklar ':' belirlenmiş
parçalanacak iki alan olduğu farzedliyor.
Eğer aynı alanda : noktadan farklı farklı ayraçlar varsa bunları da replace ile önce iki noktaya çevirip ardından işlem yapılabilir.
şöyleki;
Kod: Tümünü seç
SELECT NO,METIN,
cast(
SUBSTRING(METIN,1,(LOCATE(':',METIN)-1)) as SIGNED) as ALAN1,
cast(
SUBSTRING(METIN,(LOCATE(':',METIN)+1),LENGTH(METIN)) as SIGNED) as ALAN2
FROM `yeni` order by ALAN2 DESC
parçalanacak iki alan olduğu farzedliyor.
Eğer aynı alanda : noktadan farklı farklı ayraçlar varsa bunları da replace ile önce iki noktaya çevirip ardından işlem yapılabilir.
Sayın onaydın,
verdiğin cevap için çok teşekkür ederim çalışmalarında başarılar.
verdiğin cevap için çok teşekkür ederim çalışmalarında başarılar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Merhaba,
Göndermiş olduğun kodu kendime göre uyarlayarak bir deneme yaptım fakat ilginç bir sonuç aldım, parçalanmış sonuçlar yerine ALAN1=0 ALAN2=0 değerine verdi oysaki ALAN1=volkan ALAN2=KAmadan gibi sonuçlar almama gerekiyordu aşağıda resimleri gönderiyorum,
Göndermiş olduğun kodu kendime göre uyarlayarak bir deneme yaptım fakat ilginç bir sonuç aldım, parçalanmış sonuçlar yerine ALAN1=0 ALAN2=0 değerine verdi oysaki ALAN1=volkan ALAN2=KAmadan gibi sonuçlar almama gerekiyordu aşağıda resimleri gönderiyorum,
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
verdiğiniz ilk örnekte sayısal ifadeler vardı
1985:2556 benzeri
bende bu alanlar order by a girdiğinde sayısal olarak sıralansın diye
ayrıştıran kısma ek olarak cast fonksiyonu ile char formatında tutulan metni sayısal bir ifadeyle değiştirdim.
Yanlış sonuç bundan kaynaklanıyor
cast fonksiyonunu çıkarırsanız aradan, çalışıverir o zaman.
1985:2556 benzeri
bende bu alanlar order by a girdiğinde sayısal olarak sıralansın diye
ayrıştıran kısma ek olarak cast fonksiyonu ile char formatında tutulan metni sayısal bir ifadeyle değiştirdim.
Yanlış sonuç bundan kaynaklanıyor
cast fonksiyonunu çıkarırsanız aradan, çalışıverir o zaman.
Çok teşekkürler onaydın bu kod gerçekten bir hayat kurtaracak kadar işime yarayacak saol varol, evet dediğini yapınca çalıştı.
Başarılar.
Sayın Admin,
Forum kurallarında böyle bir kısıtlama görmediğim için böyle bir gaflete düştüm özür dilerim bilgim yoktu yoksa birisi 13k diğeri 34k boyutundaki bir birinden büyük resimleri kesinlikle eklemezdim, bir daha zor durumda kalmadıkça eklemeyeceğim.
Saygılar.
Başarılar.
Sayın Admin,
Forum kurallarında böyle bir kısıtlama görmediğim için böyle bir gaflete düştüm özür dilerim bilgim yoktu yoksa birisi 13k diğeri 34k boyutundaki bir birinden büyük resimleri kesinlikle eklemezdim, bir daha zor durumda kalmadıkça eklemeyeceğim.
Saygılar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr