Mailinglisten-Archive |
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