Alexander (HH): MySQL : mit regulären Ausdrücken Wörter für Buchstaben suchen

Beitrag lesen

Moin Moin!

Ich würde auf REGEXP komplett verzichten, statt dessen wegen des speziellen Einsatzzweckes in 29(!) weiteren Spalten die einzelnen Buchstabenhäufigkeiten abspeichern [1] und bei der Abfrage nutzen.

[1] ganz bewusst gegen Normalisierung verstoßend.

Guter Ansatz für eine lese-optimierte DB. Und sauberer als das "sortierte Wort" ist das auch. Nur wird die Abfrage halt etwas länger. Gut, dass man das SQL-Statement berechnen kannn.

Ich würde angesichts der Joker-Problematik allerdings nochmal nachdenken, ob die Buchstabehäufigkeiten in einer getrennten Tabelle nicht besser aufgehoben wären, weil GROUP BY, COUNT und SUM da evtl. einfacher zu formulieren sind.

Die Forderung "zwei Es, zwei Rs, und zwei beliebige andere Buchstaben" läßt sich aber auch in der nicht normalisierten Form ausdrücken:

... where count_e=2 and count_r=2 and count_a+...+count_d+count_f+....+count_q+count_s+...count_z+count_ae+count_oe+count_ue+count_sz=6

Die Anfrage ist halt für jede Eingabe neu zu berechnen, während eine Konstruktion mit SUM und COUNT immer wieder benutzt werden könnte.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".