Hallo!
Ich möchte gern mittels REGEXP den Text in einer mysql-Tabelle nach mehreren Worten durchsuchen ... z.B. wort1, wort2, wort3. Sind alle diese Worte vorhanden, so soll die Zeile ausgegeben werden.
also: SELECT * FROM `tabelle` WHERE `infotext` REGEXP ...
Hab schon einige Varianten versucht, komme jedoch einfach nicht weiter ...
mit ... REGEXP '(wort1|wort2|wort3)';
... liefert mir die Abfrage auch Zeilen einer Tabelle, welche nur ein Wort enthalten!
mit ... REGEXP 'wort1(.*)wort2(.*)wort3';
... erhalte ich nur Zeilen, in der die Wörter in dieser Reihenfolge zu finden sind
mit ... REGEXP '(wort1(.*)wort2|wort2(.*)wort1)';
... wird zwar die Reihenfolge berücksichtigt und die Zeile auch nur ausgegeben, wenn alle Wörter vorhanden sind, die abfrage wird aber bei mehr als 3-4 Wörter schon nicht mehr überschaubar es müssten ja alle Möglichkeiten der Reihenfolge eingegeben werden!
gib es nicht eine einfachere Lösung?
Hinweis: die oben angegebenen REGEXP-Ausdrücke sind um einiges verkürzt! Vor und nach diesem Problem kommen eigentlich noch andere Bedingungen! mir geht es aber hauptsächlich um diese Sache.
Vielen Dank schonmal!
tschau derlippe
Ich möchte gern mittels REGEXP den Text in einer mysql-Tabelle nach mehreren Worten durchsuchen ... z.B. wort1, wort2, wort3. Sind alle diese Worte vorhanden, so soll die Zeile ausgegeben werden.
also: SELECT * FROM `tabelle` WHERE `infotext` REGEXP ...
Hab schon einige Varianten versucht, komme jedoch einfach nicht weiter ...
mit ... REGEXP '(wort1|wort2|wort3)';
... liefert mir die Abfrage auch Zeilen einer Tabelle, welche nur ein Wort enthalten!
mit ... REGEXP 'wort1(.*)wort2(.*)wort3';
... erhalte ich nur Zeilen, in der die Wörter in dieser Reihenfolge zu finden sind
mit ... REGEXP '(wort1(.*)wort2|wort2(.*)wort1)';
... wird zwar die Reihenfolge berücksichtigt und die Zeile auch nur ausgegeben, wenn alle Wörter vorhanden sind, die abfrage wird aber bei mehr als 3-4 Wörter schon nicht mehr überschaubar es müssten ja alle Möglichkeiten der Reihenfolge eingegeben werden!
gib es nicht eine einfachere Lösung?
Hinweis: die oben angegebenen REGEXP-Ausdrücke sind um einiges verkürzt! Vor und nach diesem Problem kommen eigentlich noch andere Bedingungen! mir geht es aber hauptsächlich um diese Sache.
Vielen Dank schonmal!
tschau derlippe