Vinzenz Mai: MySQL : mit regulären Ausdrücken Wörter für Buchstaben suchen

Beitrag lesen

Hallo,

select word_id from letter_freq group by word_id where sum(n)=6
(Je nach RDBMS muß sum(n) auch noch zwischen select und from vorkommen.)

nein, ein Fall für die HAVING-Klausel:

HAVING SUM(n) = 6 :-)

Zweite und dritte Forderung - Häufigkeit ausgewählter Buchstaben:

select word_id from letter_freq where letter='E' and n=2
select word_id from letter_freq where letter='R' and n=2

Gesamtergebnis sind dann alle Worte, deren IDs in allen drei Query-Ergebnissen vorkommen. Das kann man mit SQL ausdrücken, aber ich hab gerade eine Denkblockade.

Subselects, vergleiche </archiv/2009/1/t182493/#m1207580>. Von Selfjoins rate ich hier dringend ab :-)

» Als Vorteil einer Auslagerung nach genanntem Muster sehe ich bei weiterem Nachdenken noch, dass ich mich nicht auf die zu verwendenden Buchstaben festlegen muss. Demnach können Wörter verschiedener Sprachen in einer Tabelle stehen. Sehe ich das so richtig?

Als Zusatzinformation müsstest Du zu einem Wort die zulässigen Sprachen und die zugehörigen Buchstabenmengen hinterlegen. Ich ging von einer einsprachigen Variante mit den Buchstaben von A-Z sowie ÄÖ und Ü aus, da Du das ß bereits ausgeschlossen hattest.

Aber auch im Fall von gelegentlichen Erweiterungen der Wortliste sollten die Lesezugriffe bei weitem überwiegen und sich eine Optimierung für Lese-/Suchzugriffe auszahlen.

Freundliche Grüße

Vinzenz