Hi Mudguard,
Muß es ein Regex sein?
SonstWHERE spalte LIKE '%hans%' AND spalte LIKE '%gestern%' AND spalte LIKE '%komisch%'
Äh - ja (wie ausgeführt). Weil ich eben gern die Option zur Suche nach Einzelwörtern einbauen würde. Und wie gesagt; Dein Vorschlag liefert mir auch die nicht gesuchten 'hanse-kogge' 'hängestern'. (Zweites Beispiel ist zugegebenermaßen ewtas 'gesucht'.)
Ich hätte damit also das Problem nur auf die Auswertung des Query-Ergebnisses 'verschoben'.
Wobei sich, da hast Du schon recht, die Anzahl der regex-Aufrufe dadurch natürlich reduzieren läßt;
aber ich wage zu bezweifeln, dass
30 mal mysql:LIKE [bei 10 Zeilen mit 3 gesuchten Wörtern]
und dann ggf.
3 mal PHP:preg_match() [auf 3 Ergebnisse]
performanter ist als
10 mal mysql:REGEX [bei besagten 10 Zeilen]
Aber wie gesagt; mein Denkfehler scheint in der Suche nach einem regulären Ausdruck mit UND-Verknüpfung für Wörter zu liegen. Das scheint tatsächlich nur über die Aneinaderreihung aller Kombinationen zu gehen; und dann hat es spätestens ab 4 Wörtern wohl keinen Zweck mehr.
cu2,
Sancho.