Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
sql like ile birden fazla kelime arama
#1
Arkadaşlar,


ACIKLAMA "2016 DARICA ALI DEPOLAMA VE DOLUM TESISI MALI DENETIM"


Aşağıdaki komut ile içinde depo geçenleri listeliyor.
select * from DOSYALAR WHERE ACIKLAMA like '%depo%'


içinde "2016 depo dolum" gibi de arama yapmak istiyorum nasıl yapabilirim ?
select * from DOSYALAR WHERE ACIKLAMA like '2016 depo'


Teşekkürler
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#2
Kod:
select * from DOSYALAR WHERE ACIKLAMA like '%2016%' and  ACIKLAMA like '%depo%' and  ACIKLAMA like '%dolum%'


icinde 2016 , depo ve dolum kelimeleri gecen kayitlari listeler
WWW
Cevapla
#3
bir açıklama alanı var, edit1.text e ne girdiğini bilemem ki daha kısa bir çözümü olmalı


Teşekkür Ederim.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#4
edite girdigi degeri neden bilemiyorsunuz anlayamadim.

Edite girilen veriler kelime kelime ayrilir , her bir kelime like ile sorgu cumlesine eklenir. baska bir kisayolu var mi ben bilmiyorum.
WWW
Cevapla
#5
(07-05-2018, Saat: 09:19)erdogan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlArkadaşlar,


ACIKLAMA "2016 DARICA ALI DEPOLAMA VE DOLUM TESISI MALI DENETIM"


Aşağıdaki komut ile içinde depo geçenleri listeliyor.
select * from DOSYALAR WHERE ACIKLAMA like '%depo%'


içinde "2016 depo dolum" gibi de arama yapmak istiyorum nasıl yapabilirim ?
select * from DOSYALAR WHERE ACIKLAMA like '2016 depo'


Teşekkürler

Merhaba ,
@sadettinpolat beyin dediği gibi Like and like and diyebilirsin , ama motor olarak Innodb kullanıyor isen Fulltext kullan.

Pardon , ben farklı alanlarda farklı kelimeler aratacaksın sandım. Fulltext bir veya birden fazla texti birden fazla fieldda aramak için uygundur.

Sorunuzun en kolay yolu , @sadettinpolat in cevabında
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#6
Merehaba,
Gerekli açıklamayı @sadettinpolat hocamız yapmış.
Örnek kodda olduğu gibi StringList ten faydalanarak Edit içine yazdığınız kelimeleri ayrıştırabilirsiniz. Delimiter tanımında Boşluk karakteri referans gösterilmiştir. Siz burada farklı bir karakterde kullanabilirsiniz.
Örnek: 8GB+İ7+250GB+23"
şeklinde bir kullanım için, ayrıştırma yapacağımız referans karakterimiz "+" olacaktır.
S.Delimiter     :='+';

 function ArananKelimeler(TAlan,Cumle,and_or:String):string;
 var
   S:TStringList;
   i:Integer;
 begin
   S :=TStringList.Create;
   try
     S.Delimiter     :=' ';    // Kelimeler Boşluk karakterine göre ayrıştırılacaktır.
     S.DelimitedText :=Cumle;  // kelimelere ayrılacak yazımız.
     for I := 0 to s.Count-1 do // Kaç adet kelime var ise döngü ile sorgu cümlemize ekliyoruz
     begin
       if i<>S.Count-1 then // Listedeki son kelime olup olmadığını kontrol ediyoruz.
       Result:=Result+TAlan+' like %'+S.Strings[i]+'% '+and_or+#13#10  //Son kelime değil ise
       else // parametredeki And veya OR ifadesini ekliyoruz.
       Result:=Result+TAlan+' like %'+S.Strings[i]+'% '; // Son kelimemizden sonra AND,OR eklemesi yapmıyoruz.
     end;
   finally
     S.Free; // Hafıza kaçağı olmaması için..
   end;
 end;
Begin
 ShowMessage('Select * From DOSYALAR Where  '+
             ArananKelimeler('ACIKLAMA ',Edit1.Text,'and') );
End;
Cevapla
#7
Evet oldu çok teşekkür ederim.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#8
string replace ile her boşluğu %' and aciklama like '% ile değiştirip sonunada %' eklenedebilir diye düşünüyorum
Topluluk mopluluk yok :/
Cevapla
#9
(07-05-2018, Saat: 11:47)erdogan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlEvet oldu çok teşekkür ederim.

@erdogan bey, 
Sorunuza çözüm üreten ve emeği geçen üyelere puan vermeyi untmayın!
Delphi Can'dır!
WWW
Cevapla
#10
(07-05-2018, Saat: 10:56)Cyber Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerehaba,
Gerekli açıklamayı @sadettinpolat hocamız yapmış.
Örnek kodda olduğu gibi StringList ten faydalanarak Edit içine yazdığınız kelimeleri ayrıştırabilirsiniz. Delimiter tanımında Boşluk karakteri referans gösterilmiştir. Siz burada farklı bir karakterde kullanabilirsiniz.
Örnek: 8GB+İ7+250GB+23"
şeklinde bir kullanım için, ayrıştırma yapacağımız referans karakterimiz "+" olacaktır.
S.Delimiter     :='+';

 function ArananKelimeler(TAlan,Cumle,and_or:String):string;
 var
   S:TStringList;
   i:Integer;
 begin
   S :=TStringList.Create;
   try
     S.Delimiter     :=' ';    // Kelimeler Boşluk karakterine göre ayrıştırılacaktır.
     S.DelimitedText :=Cumle;  // kelimelere ayrılacak yazımız.
     for I := 0 to s.Count-1 do // Kaç adet kelime var ise döngü ile sorgu cümlemize ekliyoruz
     begin
       if i<>S.Count-1 then // Listedeki son kelime olup olmadığını kontrol ediyoruz.
       Result:=Result+TAlan+' like %'+S.Strings[i]+'% '+and_or+#13#10  //Son kelime değil ise
       else // parametredeki And veya OR ifadesini ekliyoruz.
       Result:=Result+TAlan+' like %'+S.Strings[i]+'% '; // Son kelimemizden sonra AND,OR eklemesi yapmıyoruz.
     end;
   finally
     S.Free; // Hafıza kaçağı olmaması için..
   end;
 end;
Begin
 ShowMessage('Select * From DOSYALAR Where  '+
             ArananKelimeler('ACIKLAMA ',Edit1.Text,'and') );
End;

Delimiteri aktifleştirmen için;

S.StrictDelimiter := True
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  DBLookupComboBox liste elemalarini arama klavye 7 354 13-06-2018, Saat: 16:59
Son Yorum: adelphiforumz
  Kelime Değiştirme quiet1day 21 1.239 20-05-2018, Saat: 00:30
Son Yorum: quiet1day
  Mutex ile birden fazla kullanıcıda aynı programın çalışmasını nasıl engelleriz masteryoda 5 401 16-05-2018, Saat: 09:00
Son Yorum: Tuğrul HELVACI
  Birden çok şartın sağlanması Lord_Ares 10 688 22-03-2018, Saat: 00:28
Son Yorum: Lord_Ares
  Birden fazla database oluşturma dilo 2 435 28-11-2017, Saat: 16:54
Son Yorum: Halil Han Badem



Konuyu Okuyanlar: 1 Ziyaretçi