# struts "beliebige motive in der datenbank finden"



## paidopoieo (22. Apr 2006)

hi, 
hab folgendes problem, hab eine Datenbank in der strings unterschiedlicher laenge gespeichert sind, z.b:

afdgkgiadlkdsafklj
ritrujowpr
wqwpoweerq
powirgaels
uioliuyprwiar

es ist dann moeglich nach bestimmten motiven zu suchen, wie z.b: adlk dann bekomm ich folgenden string zurueck: afdgkgiadlkdsafklj

ok, das ist nicht das problem: aber was ist wenn ich z.b: folgendes motiv haben will: *p*w dann will ich z.b drei strings zurueckbekommen:
wqwpoweerq
powirgaels
uioliuyprwiar

wie realisiere ich das, oder vielleicht bin ich hier falsch und es ist ein rein spezifisches SQL problem.....

ich habs zur zeit soweit das ich nach normalen mustern suchen kann(z.b: pow dann bekomm ich als resultat:  
wqwpoweerq
powirgaels

danke


----------



## Lacos (22. Apr 2006)

Hallo, du müsstest bei der Abfrage den Platzhalter "%" nutzen, z.B. "%p%w" bzw. "%pow%" , dann sollte es gehen.


----------



## paidopoieo (22. Apr 2006)

hallo lacos,
ok, danke fuer deine antwort, so hab ich es auch vorher geloest, jedoch, wie realisiere ich das, wenn der Benutzer z.b
nach dem String *p*w suchen will, wie uebergebe ich dem select statement die anfrage (im select sieht das dann so aus: %p%w), 
das ganze wird dann aber ziemlich dynamisch, denn er kann ja auch dann nach dem string **pw oder pw*w.......oder was auch immer suchen.....

ich braeuchte eine loesung die mir das alles abdeckt....


----------



## mlange8801 (23. Apr 2006)

> ok, danke fuer deine antwort, so hab ich es auch vorher geloest, jedoch, wie realisiere ich das, wenn der Benutzer z.b
> nach dem String *p*w suchen will, wie uebergebe ich dem select statement die anfrage (im select sieht das dann so aus: %p%w),
> das ganze wird dann aber ziemlich dynamisch, denn er kann ja auch dann nach dem string **pw oder pw*w.......oder was auch immer suchen.....


Das ist sehr Datenbankspezifisch.
Wenn Du mysql verwendest, kannst Du eine Fulltext Suche verwenden.



> The boolean full-text search capability supports the following operators:
> 
> +
> 
> ...


http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html


----------



## paidopoieo (25. Apr 2006)

hi mlange8801,
hab mir die fulltext suche angesehen, bin draufgekommen, das es mit innodb nicht geht....hab auf myisam gewechselt....
hast du mit der fulltext suche schon mal was gemacht.....

ist es auch moeglich wei bei regex den punkt operator einzusetzen, hab gesehen, das sie hier den * operator haben fuer beliebig viele weitere zeichen, was fuer mich aber interessanter waere, ob der . operator fuer ein zeichen auch gibt......
hab das naemlich nicht gefunden....


----------



## paidopoieo (25. Apr 2006)

hi, 
bin jetzt draufgekommen das struts diese fulltext suche nicht unterstuetzt, habs dann mit regular expressions versucht, jedoch mit demselben resultat, das duerfte doch nicht sein......oder...

bekomme den HQL fehler (hibernate query language) joop benutze hibernate als OR tool.....
aber das muesste ja normales sql auch erkennen, oder.....

kann man das aendern.....


----------



## paidopoie (25. Apr 2006)

ok, hab das problem geloest....


----------

