Gerhard: Zufälliger Datensatz aus Tabelle

Hallo!
Weiß vielleicht jemand ob es in SQL eine Standard-Funktion gibt (z.B.: RAND) mit der man aus einer Tabelle zufällig irgendeinen Datensatz holen kann?
Wenn nicht, gibt es vielleicht eine andere Lösung für dieses Problem?
Ich stehe echt total auf der Leitung.
Danke im Voraus
lg Gerhard

  1. yo,

    Weiß vielleicht jemand ob es in SQL eine Standard-Funktion gibt (z.B.: RAND) mit der man aus einer Tabelle zufällig irgendeinen Datensatz holen kann?

    muss es den sql standard sein oder reicht ein funtion für ein bestimmtes dbms ? falls es nämlich um mysql geht, einfach mal auf deren webseite unter funktionen schauen und dann die rand() funktion so ummodeln, dass du in der where klausel die id eines vorhandenen datensatzes bekommst ....

    Ilja

    1. echo $begrüßung;

      [...] die rand() funktion so ummodeln, dass du in der where klausel die id eines vorhandenen datensatzes bekommst ....

      Bist du sicher, dass das irgendwie funktioniert, und noch dazu wenn die IDs Lücken aufweisen? rand() erzeugt Zufallszahlen von 0 bis 1,0.

      Meist wird empfohlen,  ... ORDER BY RAND() LIMIT 1   zu verwenden.

      echo "$verabschiedung $name";

      1. yo,

        Meist wird empfohlen,  ... ORDER BY RAND() LIMIT 1   zu verwenden.

        das ist natürlich viel besser und eleganter. dieser Limit befehl in mysql erweist sich immer wieder als sehr nützlich.....

        Ilja

  2. Hallo.

    mysql kennt rand() als mathematische Funktion (http://dev.mysql.com/doc/mysql/en/mathematical-functions.html), was aber nicht direkt nützlich ist.
    Ein Lösungsansatz wäre per LIMIT einen Wert zu wählen. D.h. du erzeugst Dir einen Zufallswert und möchtest ab dort einen Datensatz zurückgegeben haben. Wäre nur noch Strategie zu überlegen, was ist wenn der Zufallswert größer als die Menge der Datensätze ist...

    Viele Grüße
    Julian

    1. echo $begrüßung;

      Ein Lösungsansatz wäre per LIMIT einen Wert zu wählen.

      MySQL lässt in LIMIT keine Formeln zu, nur "integer constants" sind erlaubt. Es würde dann eine zusätzliche Abfrage benötigt werden, die erstmal die Anzahl der Datensätze ermittelt.

      echo "$verabschiedung $name";