mysql: order by rand()
Roger
- datenbank
moin!
ich bin verwirrt. vor kurzem hatte ich ein sql-statement geschrieben, das aus 3000 einträgen einen zufallseintrag "heraus fischte" - mit order by rand(). jetzt wollte ich das mit wenigen einträgen machen (in meinem letzten versuch gerade mal mit 2), aber so oft ich den versuch wiederhole es wird stets der älteste eintrag angezeigt. wenn denn nun die auswahl zufällig ist, warum bekomme ich nicht mal den 2. eintrag angezeigt? muss vielleicht vorher noch ein startwert (wie bei php mit srand()) festgelegt werden?
gruß.
roger.
hi,
vor kurzem hatte ich ein sql-statement geschrieben, das aus 3000 einträgen einen zufallseintrag "heraus fischte" - mit order by rand(). jetzt wollte ich das mit wenigen einträgen machen (in meinem letzten versuch gerade mal mit 2), aber so oft ich den versuch wiederhole es wird stets der älteste eintrag angezeigt.
ja, ist bekannt, dass das umso schlechter funktioniert, je weniger datensätze vorhanden sind.
gruß,
wahsaga
moin!
ja, ist bekannt, dass das umso schlechter funktioniert, je weniger datensätze vorhanden sind.
bleibt mir dann nur noch die ausweichmöglichkeit, das über php auszulesen und weiter zu verarbeiten?
gruß.
roger.
yo,
bleibt mir dann nur noch die ausweichmöglichkeit, das über php auszulesen und weiter zu verarbeiten?
die mysql rand() funktion hat meines wissens auch einen möglichen eingabeparameter. vielleicht kannst du dort eine funktion übergeben, die zeitbasierend ist, zum beispiel die gerade aktuelle tageszeit. vielleicht verändert sich ja dadurch das verhalten von rand(). einfach ausprobieren.
Ilja
moin!
yo, hatte ich schon ausprobiert.
$sqlab = "SELECT [...] ORDER BY RAND(".time().")";
brachte aber leider auch das selbe ergebnis wie zuvor... :(
gruß.
roger.
yo,
dann ist es wohl wie wahasaga sagt, bekannt und noch nicht verbannt, es sei denn, jemand kommt mit einer anderen idee....
Ilja
Hi,
es wäre toll wenn du etwas mehr posten könntest, denn dann könnte ich Dir auch sagen was Du falsch machst.
mfg
PHP_Dude