# wildcards in mysql suche?



## Ruediger (2. Juli 2002)

hallo zusammen,

ich möchte per php eine datenbanktabelle durchsuchen lassen nach einem bestimmten suchstring.

wenn dieser string in einem tabellenfeld vorkommt, möchte ich die ersten 100 zeichen dieses tabellenfelder rund um den string anzeigen lassen und den suchstring als solches fett in der ausgabe markieren. 

wie stelle ich das an?

danke im voraus
rue


----------



## Dario Linsky (2. Juli 2002)

wenn es nur um ein bestimmtes feld geht, würd ich das mit folgender abfrage machen:

```
SELECT feldname FROM tabelle WHERE feldname = '%suchstring%';
```

wenn du mehrere felder durchsuchen willst, kannst du entweder die bedingung in der abfrage so lange mit or verknüpfen, bis du jedes feld abfragst:

```
SELECT * FROM tabelle WHERE feld1 = '%suchstring%' OR feld2 = '%suchstring%' OR feld3 = '...;
```
oder du schreibst eine schleife, in der jedes feld in einer eigenen abfrage durchsucht wird (keine besonders tolle lösung)...

oder du klickst hier: http://tutorials.de/showthread.php?threadid=9872


----------



## deinertsche (2. Juli 2002)

nicht WHERE feldname = '%suchstring%';
sondern WHERE feldname LIKE '%suchstring%';


----------



## erik s. (2. Juli 2002)

is doch das gleiche, ne ?!

mfg


----------



## gecko (2. Juli 2002)

aber dein problem war doch eigentlich ein ganz anderes oder ?

...string in einem tabellenfeld vorkommt, möchte ich die ersten 100 zeichen dieses tabellenfelder rund um den string anzeigen lassen...

also das suchwort in seinem kontext ...
das geht so alleine mit mysql nicht (man belehre mich eines besseren, wenn ich mich irre ).

mach das folgendermassen:

1. hol den text aus der datenbank.
2. such dir die position des wortes im text (strpos())
3. gib das suchwort im kontext aus:
   von suchwortposition-50 bis suchwortposition+50.

so in etwa ...


----------

