Laden...

Wildcardsuche

Erstellt von MichealGaudian vor 14 Jahren Letzter Beitrag vor 14 Jahren 968 Views
M
MichealGaudian Themenstarter:in
33 Beiträge seit 2009
vor 14 Jahren
Wildcardsuche

verwendetes Datenbanksystem: SQL SERVER 2005

Ich würde gerne eine Wildcardsuche bastelen, in der ich nach soetwas suchen kann. Beispiel:
*m*.exe

Bis jetzt sieht meine Abfrage so aus

SELECT * FROM table WHERE column LIKE '%' + @suchbegriff + '%'

So kann ich leider nur begrenzt suchen:

Beispiel:
Suchbegriff: programm
Filename: testprogramm.exe
Es wird nur etwas gefunden, wenn der Suchbegriff auch GENAUSO im Filename vorkommt

Kann mir da bitte jemand weiterhelfen? Danke

2.760 Beiträge seit 2006
vor 14 Jahren

Es wird nur etwas gefunden, wenn der Suchbegriff auch GENAUSO im Filename vorkommt

Joa, was soll der SQL-Server denn auch finden wenn du anstelle von "programm" "pragomm" eingibst. Eventuell bist du mit einem Volltextindex besser bedient.

Suchen nach dem Schema "LIKE '%irgendwas%'" hebeln auch deine Indices aus und haben dann einen Full-Table-Scan zur folge was bei größeren Mengen an Daten schnell zu Performanceproblemen führt.

656 Beiträge seit 2008
vor 14 Jahren

Du könntest mal die Funktion SOUNDEX ausprobieren.
MySQL bietet zudem auch noch andere Vergleichsfunktionen ala Levensthein; die scheint der SQL Server aber nicht zu kennen.

Gruß, BhaaL

6.911 Beiträge seit 2009
vor 14 Jahren

Hallo,

dazu kannst du die Fuzzy-Suche verwenden. Mein Artikel beschriebt auf einfache Weise wie dies mit C# gelöst wird. Lässt sich auch in T-SQL bewerkstelligen (oder durch CLR-Integration).

Fuzzy Search

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"