# MySQL Operator LIKE 'feinstellen'



## MrManko (26. Juli 2007)

Hallo,

ich habe ein kleines Problem mit dem Operator LIKE in MySQL. Ich führe eine Abfrage wie folgt durch:

```
SELECT * FROM buecher WHERE autor LIKE '%Johann%'
```
In diesem Fall werden die Autoren Johann und Johannes gefunden, aber nicht der Autor Johan. 
Meine Frage wäre daher, ob sich der LIKE Operator darauf einstellen lässt auch solche Einträge zu finden, die kürzer als der Suchbegriff, aber immer noch eine gewisse Relevanz aufweisen. 
Ich danke nun schon jeden, der bemüht ist mir zu helfen.

Gruß
MrManko


----------



## Dr Dau (26. Juli 2007)

Hallo!

Das was Du hinter LIKE angibst, ist die Mindestanforderung für die Suche.
Willst Du also sowohl nach Johan als auch Johannes suchen, musst Du Johan% angeben.
Das Prozentzeichen vor bzw. hinter dem Suchbegriff weist MySQL dazu an dort nach beliebigen Zeichen zu suchen.
Mit %Johan% suchst Du also nach Namen die mit Johan beginnen, enden und/oder in denen irgendwo im Wort Johan vorkommt.

Gruss Dr Dau


----------



## MrManko (26. Juli 2007)

Hallo Dr Dau
Dies war mir vorher bewusst, doch ich suche nach einer möglichkeit auch den Autor Johan mit einzubeziehen, wenn Johann gesucht wird. Dies ist notwendig, wenn ein user nicht so recht weiß, wie der Autor geschrieben wird. (Ich arbeite an einer Büchersammlung im Intranet). Deshalb wäre es mir sehr wichtig, dass die Suche nach Relevanz bewertet. Wenn es gar nicht mit LIKE geht bin ich auch für alle anderen Methode offen.

Gruß 
MrManko


----------



## Dr Dau (26. Juli 2007)

Dann schaue Dir mal das Thema "Ansätze für Ähnlichkeitssuche?" an.
Wenn man nach "Auto" sucht und "Boot" meint, dann funktioniert es natürlich nicht.


----------

