Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Arama hatasi
#1
Merhaba arkadaşlar.
ekteki gibi bir tablom var. bu tabloya aynı kişiler farklı harflerle kaydedilmiş.
Ben örneğim " SELECT * FROM  TABLOADI WHERE (ad LIKE '%ahmet%') "   diye aratınca 1. - 3. ve 7. sıradaki kayırlar geliyor.
Diğer yanlış yazılan kayıtları da getirmek istiyorum.
yada Toraman aratınca Toroman yazılarıda ekrana getirmek istiyorum. 

bunu nasıl yapabilirim?  yani harf sırası farketmeksizin nasıl arama yapabilirim?

Teşekkürler.


Ek Dosyalar Resimler
   
Cevapla
#2
Bu sıkıntılı bir iş. Bunu SQL sunucuda yapan standart bir işlev yok. Bu tür aramalara Fusy Search deniliyor. Bunun da bir algoritması var. Bu algoritmayla yazılmış bir Delphi kodu vardı ve parayla satıyordu. Bunu satın alıp UDF halinde sunucuya ekleyeceksiniz. Eğer MSSQL kullanıyorsanız o algoritmayı DotNet olarak UDF yapabilirsiniz, Interbase ve FireBird'de C tipi bir Delphi fonksiyonunu tanımlayabilmeniz gerekiyor. Daha sonra bunu aynen diğer Upper() vb fonksiyonlar gibi kullanabiliyorsunuz.
Cevapla
#3
bu sorunun spesifik çözümü olamaz çunku yapılan yanlışlar bır standarda bağlı değil. yani ahmet,ahmat,ahmo vs.. arasında yanlışları bağdaştıracak hiçbir ilişki yok.
aklıma gelen şöyle birşey yapılabılır. Kendine eşleşen harf sayısı krıterı koyarsın. mesala arattğının kelimenin içinden 3 harfi veya 4 harfi, veya %70 i eşlessin yeter diyebilirsin.
o şekilde sorgu oluşturmayı denemen en mantıklısı. birde veritabanını yazmamıssın ama mssql de yeterınce strıng fonksıyonlar mevcut. Eğer hallemessen sana kod yazmaya calısırım kardes

delphi tarafından halledeyim dersen 
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız. boyle bıseyler var ama ben ugrasmam. bır bak ısterrsen
Cevapla
#4
Selamlar. Öncelikle Cevaplarınız için teşekkür ederim.
Fusy Search olayını araştırdım inceledim, ama sql ile arama yapmam daha sağlıklı olacak gibi. Şöyle ki,
örneğin kelime : "cengiz" diyelim.. başka bir satırda "nergiz" geçiyor ise bunu da cengiz'e benzetiyor.

Başka nasıl yapabilirim acaba?
Cevapla
#5
Başka yolu yok maalesef. Ancak Fusy Search'de benzeme oranı diye bir parametre var. Bunu artırırsanız birbirine yakın kelimeleri eşleştirecektir.
Cevapla
#6
Böyle bir ifade isteklerinizin bazılarını yakalayabilir ama arkadaşların da dediği gibi bu tür yazım yanlışlarının belirli bir standartı olmadığı için %100 bir çözüm pek mümkün değil.

where AD LIKE '%toraman%' 
OR     AD LIKE  '%_oraman%'
OR     AD LIKE  '%t_raman%'
OR     AD LIKE  '%to_aman%'
OR     AD LIKE  '%tor_man%'
OR     AD LIKE  '%tora_an%'
OR     AD LIKE  '%toram_n%'
OR     AD LIKE  '%torama_%'
WWW
Cevapla
#7
Bu tarz işler benzerlik algoritmaları ile halledilebilir. Microsoft Sql Server için SOUNDEX fonksiyonuna bakmanızı öneririm.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#8
evet tuğrul hocamın dediği gibi soundex ile halledilebilir

where SOUNDEX(AD) LIKE SOUNDEX('toraman')
Cevapla
#9
Bu komutu kullanırken bazı dikkat edilmesi gereken şeyler var bunlardan benim bildiklerim ciddi anlamda performans düşüklüğü
ve en önemliside arama ve eşleşme yapısı aranılan birinci harf dikkate alınarak olması bu nedenle sadece bu komutu baz alarak
Where şartı uygulanmamasına dikkat etmekte fayda var ve bunun yerine aynı işlemi soundex ile birlikte aranan alanı like '%xxx% ilede desteklemek daha iyi sonuç verecektir
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [ ÇÖZÜLDÜ ]MSSQL VeriTabanına Tarih Kaydetme Hatası theSinan 7 763 04-09-2019, Saat: 10:57
Son Yorum: theSinan
  MSSQL de Tarih Saat kriteri Arama Bay_Y 5 1.026 20-08-2019, Saat: 11:59
Son Yorum: serdar
  Missing Connection or Connection String (BAĞLANTI HATASI) harezmi 20 2.095 31-05-2019, Saat: 14:09
Son Yorum: adelphiforumz
  Microsoft SQL Server, Error: 5118 Hatası Olası Çözümü hi_selamlar 1 836 21-02-2019, Saat: 22:22
Son Yorum: mcuyan
  SQL Agent Hatası 3ddark 3 758 01-11-2018, Saat: 14:20
Son Yorum: frmman



Konuyu Okuyanlar: 1 Ziyaretçi