detaylı arama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

detaylı arama

Mesaj gönderen sako »

arkadaşlar bazı programlarda aradığınız kelimenin herhangi bir harfini girerek (mehmet isimli bir kaydı ararken m* yazmak yatarli oluyor)o harfle başlayan bütün kayıtları listeleyebilyorsunuz.
Bu işi filter işlemi ile yapabiliyorum ama query ile nasıl ypılır acaba.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

LIKE komutu ile yapabilirsin.

SELECT * FROM TABLO_İSMİ
WHERE ADI LIKE 'M%'

dersen M ile başlayanlar listelenir.

Kolay gelsin.
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

eğer değeri edit ten alacaksa:

SELECT * FROM TABLO_İSMİ
WHERE ADI LIKE edit1.text

gibi bişimi denemem lazım
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kod: Tümünü seç

'SELECT * FROM TABLO_İSMİ 
WHERE ADI LIKE '''+edit1.text+'%''''
Kullanıcı avatarı
mehmet_turecan_cakmak
Üye
Mesajlar: 132
Kayıt: 02 Tem 2003 01:08
Konum: Afyon
İletişim:

arama

Mesaj gönderen mehmet_turecan_cakmak »

selamlar...

bu konuda benim de bir katkım bulunsun işte kod..

select * from tablo1 where sira_no like "%'+edit1.text+'%" order by sira_no';

kolay gelsin...
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Merhabalar,

Aslında SQL'de arama yaparken (daha doğrusu selection criteria'yı verirken) % işareti kullanılmakta. (Bazı DB'lerde '_' de kullanılmakta, o işaret kullanılan SQL DB'ye göre değişiklik gösterebilir ancak genelde '%' kullanılmakta.

Eğer sorgulamada kriterin sonuna '%' koyarsanız, verdiğiniz kriter ile başlayan ve sonrası ne olursa olsun şeklindeki kayıtları getirir.

Örn ;

Kod: Tümünü seç

  SELECT * FROM ADRESLER WHERE ISIM LIKE 'ADNAN%' 
  -- ISIM FIELDININ BAŞLANGICI ADNAN İLE BİTEN KAYITLARI GETİR
Eğer sorgulamada kriterin önüne '%' koyarsanız. başlangıcı ne olursa olsun, kriterin sonunda aradığınız şey neyse onu arar. (Yani Kriterin bitişi sizin verdiğiniz şey olur)

Örn ;

Kod: Tümünü seç

  SELECT * FROM ADRESLER WHERE ISIM LIKE '%ADNAN' 
  -- ISIM FIELDININ SONU ADNAN İLE BİTEN KAYITLARI GETİR
Son olarak da eğer sorgulamada kriterin önüne ve arkasına '%' işareti koyarsanız, aradığınız kriter, kayıtlarda herhangi bir noktada geçiyorsa (yani içinde herhangi bir yerde geçiyorsa) demek olur.

Örn ;

Kod: Tümünü seç

  SELECT * FROM ADRESLER WHERE ISIM LIKE '%ADNAN%' 
  -- ISIM FIELDININ İÇİNDE ADNAN GEÇEN KAYITLARI GETİR
Umarım açıklayıcı olmuştur.

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

bundan alası, şamda kayısı :lol:

çok güzel açıklamışsın hocam, ellerine sağlık.

Kolay gelsin.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

yeri gelmişken Sybase ASA'nin helpinde bir ara gördüğüm LIKE kullanımı optimize etmek ve performansi arttirmak ile ilgili ufak bir hatırlatma vardı. Onu göndereyim dedim.

In each of the following examples, assume that the pattern in the LIKE predicate is a literal constant or host variable, and X is a column in a base table.

X LIKE '%' is rewritten as X IS NOT NULL

X LIKE 'abc' is rewritten as X = 'abc'

X LIKE 'abc%' is augmented with the predicates X < 'abcZ' and X > = 'abc_'

where Z and _ represent the corresponding high values and low values for the collating sequence of this database. If the database is configured to store blank-padded strings, the second comparison operator is >, not >=, to ensure correct semantics.
sako
Üye
Mesajlar: 476
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

hakkaten bundan iyisi şamda kayısı arkadaşlar teşekkür ederim herkese.....
Cevapla