phpbar.de logo

Mailinglisten-Archive

"match whole word only" - Suche mit LIKE oder REGEXP?

"match whole word only" - Suche mit LIKE oder REGEXP?

Oliver Six mysql-de_(at)_lists.bttr.org
Fri, 14 Dec 2001 16:23:38 +0100


marcel.burkhalter_(at)_crypto.ch wrote on 14.12.2001 15:29:09:

>
>> was Du Dir vorstellst, entspricht der Volltextsuche bei MySQL.
>> d.h. man  muss einen entsprechenden Volltext-Index anlegen.
>> Dann findet er dort nur 'ganze' Woerter.
>> Es sollte jedoch ausreichend Plaz auf der Platte sein,
>> weil der Volltext-Index fast genauso gross wie die eigentliche
>> Tabelle wird...
>> 
>> Die Variante mit: feldName LIKE '%suchBegriff%'
>> geht dann auch noch...
>> 
>> Schau mal ins Manual, ich habe das Beispiel gerade nicht parat.
>
>und das geht nicht anders? mit einer ausgeklügelten REGEXP bedingung
>oder so?
>einen FULLTEXT index will ich nicht anlegen (den muss man auch von 
>"hand" aktualisieren oder? oder macht das mysql automatisch? wenn
>ja ist dann der index immer up to date??), eher streiche ich das
>feature mit den ganzen wörtern
>
>mfg
>
Hi Marcel,

versuch's doch 'mal mit "select * from tabelle where spalte regexp 
'^(suchwort[[:space:]].*|.*[[:space:]]suchwort[[:space:]].*|.
*[[:space:]]suchwort)$'". Der Teil bis zum ersten | matched auf die Worte 
am Anfang; der Teil bis zum zweiten | matched auf alle Worte in der Mitte 
und der Teil danach auf alle am Ende. Ist zwar grottenlangsam und kostet 
Rechenpower, sollte aber funktionieren. 

Mit Like sollte das auch funktionieren, wenn Du 3 Bedingungen veroderst: 
"select * from tabelle where (spalte like 'suchwort %') or (spalte like '% 
suchwort %') or (spalte like '% suchwort')". Das koennte sogar minimal 
schneller sein als die regex. 

Ciao Oliver
--
Good programming is 40% experience, 30% skill, 20% RTFM, 10% caffeine, and 
5% attention to detail. 

Oliver Six, CEO
CAHOS GmbH, Cimbernstr. 51, Germany 81377 Muenchen
Phone +49 89 71 01 93 40,  Fax +49 89 71 01 93 41

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive