Tersten like komutu?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

Tersten like komutu?

Mesaj gönderen Ancestor »

Başlık biraz garip oldu :)
Mesela;
- 100001
- 100002
- 100003
- ..........
- ..........
- 100120
- 100121
- 100122

Şeklinde giden değerler var. Bunlarda nasıl bir komut kullanabiliriz ki tersten aramaya başlasın? Normalde 10 yazdığımız zaman tüm 10 ile başlayan kayıtları getirebiliyoruz ya işte burada da (mesela) 2 yazıldığı zaman sondan 2ile başlayanlar gelicek. Devamında yazılan 21 rakamında ise 21 ile başlayanlar gelicek.

Bunu nasıl yapabiliriz?

Kolay gelsin, iyi çalışmalar.
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

arattığın veriler sorundaki örnekte olduğu gibi hiyeralşik yapıdaysa bişeyler yapılabilir tersden like diye hazır bir fonksiyon varmıdır bilmiyorum..
windows da arama yaparken ?(soru işaretinin) yaptığı görevi sql de yapan bir karekter varsa dediğin olabilir.örneğin kullanıcı 2 sayısını aratırsa ?????2 şeklinde yani 6 karekterli başında ne olursa olsun sonu 2 olan kayıtlar gibi.tabi bu sql de varmı bilemiyorum.

not:cevapdan sonra biraz araştırdım '_' (alt tire) işareti o işi görür sanırım.
yani yapman gereken kullanıcının arama yaptığı edite kaç karekterli sayı girdiğini bulup ona göre arama yaptırman.ama dediğim gibi bu sadece sorundaki gibi veriler 100001,100021 gibi hiyeralşik sıralı ise olabilir.

Kod: Tümünü seç

select * from carikart where carikodu like '__________2'
şeklinde firebirdde sorgulama yaptığımda sonu 2 olan carikodları sıraladı mesela..
kolay gelsin
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

Mesaj gönderen Ancestor »

rakamlar aynı sayıda gitmiyor. mesela 12003 oluyor, bazende 5512556950063 oluyor.
EeCOMP
Üye
Mesajlar: 119
Kayıt: 13 Tem 2003 10:38
Konum: istanbul
İletişim:

Mesaj gönderen EeCOMP »

hımm ilginç böyle bir fonksiyon belki olmayabilir

21 yazdığında gelmesi gereken 1000021 mi yoksa 1000012 mi

eğer 1000012 gelmesi gerekiyorsa ve bu alanı kullanıcı görmüyorsa kayıt açarken 10000012 değerini 2100001 olarak kaydedersin ha kullanıcıda görüyosa sen dbgridde otomatik göstermeyip afterscrool ile normal editlerde göstereceksen gene ters çevirip gösterirsin

eğer 1000021 gelmesi gerekiyorsa mecburen 21 değerini nomal like ile aratıp içinde 21 geçenleri çıkaracaksın sonra çıkan kayıtlar arasında if ile kontrol ettirip sonundaki 21 ise seçtireceksin

evet yöntemlerim çok kötü biliyorum acemiyim delphide ilk bunlar geldi aklıma inş. bununla ilgili bir fonksiyon vardır.
Kainat dahi bir programdır ve şüphesiz onun bir programcısı vardır...
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

O zaman şöyle kullanabilirsin;

Kod: Tümünü seç

select * from carikart where carikodu like '%2' 
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

firebird sql de substring veya right gibi fonksiyonlar varmı bilmiyorum.. varsay bunlarla yapılabilir..

yoksa alanı tersine çeviren bir fonksiyon yazılıp, bu fonksiyonun soncu üzerinden arama yapılabilir.. mi?
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

@rsimsek hocam vermiş cevabı, daha ne right'ı ne left'i karıştırıyorsunuz?

İyi çalışmalar.
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

hakan can dövseydin bari..

benimde aklıma böyle bir fikir geldi ve yazdım..
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

@selimr kardeş alınma senin söylediklerinin de olma ihtimali var fakat net cevaptan uzaklaştığı için @Hakan Can kardeş öyle söylemiş :wink: Yani kulağı tersten göstermek gibi olur :roll:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

rsimsek hocam alınmak değil..

benim hoşuma gitmeyen verdiğim cevabın doğru yanlış diye eleştirilmesi değil eleştiri biçimi..

sevgilerimle
Ancestor
Üye
Mesajlar: 188
Kayıt: 27 Ara 2004 06:12
Konum: Manisa - Kırkağaç

Mesaj gönderen Ancestor »

Rasim hocam verdiğiniz yöntemle sorun halloldu. Çok teşekkürler.
Diğer arkadaşlara da teşekkür ederim, ortamı daha fazla germeyelim lütfen..
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Rica ederim, kolay gelsin :)

Rasim değil Recep :wink:


Arkadaşlar birbirimize hitap ederken biraz daha dikkat lütfen :!:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

selimr yazdı:hakan can dövseydin bari..

benimde aklıma böyle bir fikir geldi ve yazdım..
Estağfirullah. Ne haddimize. Neye niyet neye kısmet oldu bizimki de. Yarı dolu bardak misali olmuş. Niyetim eleştirmek veya yermek değildi. Olaya admin arkadaş son noktayı koymuş. Onu vurgulamaktı. Zaten eleştirmek veya yermek olsaydı "İyi çalışmalar." diye bir temenni anlamsız olurdu.

İyi çalışmalar.
Cevapla