Moin Leute,
also ich hätte da malwieder ein kleines Problemchen, dessen ( gute ) Lösung ich nicht ergoogeln konnte.
Also, ich habe eine Tabelle mit Datensätzen. Jeder dieser Datensätze enthält ein Integer-Feld mit einer Zahl drin. Diese Zahlen können mehrfach vorkommen.
Was ich nun möchte ist im Prinzip eine der Nummern auszuwürfeln, wobei deren relative Häufigkeit beachtet werden soll. Steht eine Zahl also in 2 Feldern, so soll die Wahrscheinlichkeit sie zu treffen doppelt so hoch sein wie für eine Zahl, die nur in einem Feld existiert.
Da die ja alle in einer Tabelle sind hat man das ja aber schon mit drin, wenn man einfach zufällig einen auswürfelt. Ich hatte dazu folgendes gefunden:
Allerdings stand überall dabei, dass das bei größeren Datenmengen ih-Pfui-ih-Bah wäre, weil für jeden Datensatz ein Zufallswert erzeugt, und die dann danach sortiert würden. Da es bei mir mehrere tausend Datensätze sind, und die Funktion auf JEDER Unterseite aufgerufen wird scheint mir das also keine gute Lösung zu sein.
Kennt da jemand noch ein besseren Weg ?
Danke schonmal.
Gruß,
Aza
also ich hätte da malwieder ein kleines Problemchen, dessen ( gute ) Lösung ich nicht ergoogeln konnte.
Also, ich habe eine Tabelle mit Datensätzen. Jeder dieser Datensätze enthält ein Integer-Feld mit einer Zahl drin. Diese Zahlen können mehrfach vorkommen.
Was ich nun möchte ist im Prinzip eine der Nummern auszuwürfeln, wobei deren relative Häufigkeit beachtet werden soll. Steht eine Zahl also in 2 Feldern, so soll die Wahrscheinlichkeit sie zu treffen doppelt so hoch sein wie für eine Zahl, die nur in einem Feld existiert.
Da die ja alle in einer Tabelle sind hat man das ja aber schon mit drin, wenn man einfach zufällig einen auswürfelt. Ich hatte dazu folgendes gefunden:
Code:
SELECT foo FROM bar WHERE blablabla = blabalba ORDER BY RAND()
Kennt da jemand noch ein besseren Weg ?
Danke schonmal.
Gruß,
Aza
Kommentar