phpbar.de logo

Mailinglisten-Archive

Re: Sortierung nach häufigkeit eines begriffes im feld?
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Sortierung nach häufigkeit eines begriffes im feld?



Andreas Kempf aka 'Amalesh' schrieb am Montag, den 20. September 1999:
> es geht darum: in einem tabellenfeld soll nach einem begriff gesucht
> werden. Dieses feld ist ein blob und kann einen text mit ca. 10000
> wörtern beinhalten. Nun sollen die records als erstes angezeigt
> werden, in denen der begriff am _häufigsten_ vorkommt.
> 
> Läßt sich das irgendwie mit (my)SQL lösen?

Ich hätte da eine Idee, aber _effizient_ ist die Sicher nicht ...

Deshalb schon hier gleich mein Rat: mach's besser effizient (zum
Beispiel in Perl) auf der Anwendungsseite oder per vorbereiteten
Suchindizes!

Also, meine Idee:

Wenn Du mit der Funktion REPLACE() die Suchworte löscht, wird der
Ergebnisstring kürzer.  Die Längendifferenz geteilt durch die Länge
des Suchwortes zeigt einem dann, wie oft das Wort vorkam.

  SELECT ( LENGTH(textfeld) - LENGTH(REPLACE(textfeld, suchwort, ''))
         ) / LENGTH(suchwort) AS anzahl
  FROM tabelle
  ORDER BY anzahl DESC;

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ >
PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive