Sönke Tesch: ORDER BY - Problem

Beitrag lesen

Seid gegrüßt

Ich ahbe eine Tabelle, in der eingegebene Suchwörter eine Suchroutine mitgeloggt werden.

Wie kann ich jetzt per SQL-Statement die 3 am häufigsten in der Tabelle vorkommenden Wörter ermitteln???
Gibt es vielleicht so etwas wie Order By Amount...oder so...?

Versuche etwas in der Richtung

select suchwort,count(suchwort) from group by suchwort order by suchwort desc limit 3

Funktioniert 1:1 übernommen wahrscheinlich nicht, aber die Richtung sollte stimmen.

Ein anderer Ansatz wäre ein passender Aufbau der Tabelle mit einem Feld suchwort und einem Feld anzahl. Für jede Suche machst Du dann

update tabelle set anzahl=anzahl+1 where suchwort="wort"

Zum Sammeln der häufigsten Drei brauchst Du dann nur nach anzahl zu sortieren. Mit einem dritten Feld, in dem der Zeitpunkt der letzten Änderung notiert wird (Typ timestamp), kannst Du von Zeit zu Zeit selten vorkommende Worte rausschmeißen.

Gruß,
  soenk.e