Roger: mysql: order by rand()

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.

--
Dein eigenes Newslettersystem auf deiner Homepage: http://newsletter.maennchen1.de
  1. 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

    --
    I'll try being nicer if you'll try being smarter.
    1. 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.

      --
      Dein eigenes Newslettersystem auf deiner Homepage: http://newsletter.maennchen1.de
      1. 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

        1. moin!

          yo, hatte ich schon ausprobiert.
          $sqlab = "SELECT [...] ORDER BY RAND(".time().")";
          brachte aber leider auch das selbe ergebnis wie zuvor... :(

          gruß.
          roger.

          --
          Dein eigenes Newslettersystem auf deiner Homepage: http://newsletter.maennchen1.de
          1. yo,

            dann ist es wohl wie wahasaga sagt, bekannt und noch nicht verbannt, es sei denn, jemand kommt mit einer anderen idee....

            Ilja

  2. 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