Zufälliger Eintrag aus Tabelle

  1. martinibook

    martinibook Thread StarterMacUser Mitglied

    Mitglied seit:
    20.08.2005
    Beiträge:
    8.632
    Zustimmungen:
    350
    Hallo,
    Ich würde gerne einen zufälligen Eintag aus einer Tabelle haben. Wie muss ich dann den SQL Befehl gestalten?

    Martin
     
    martinibook, 14.03.2006
  2. ruerueka

    rueruekaMacUser Mitglied

    Mitglied seit:
    04.04.2004
    Beiträge:
    1.080
    Zustimmungen:
    85
    1) Was meinst du mit zufälliger Eintrag? Nur ein Feld oder eine ganze Reihe?
    2) Welche Datenbank?
    3) Welche Programmiersprache (du könntest ja zb einen select * auf die Tabelle machen und dann den Cursor per Zufallszahl auf eine Ergebnisreihe > 0 < Anzahl der Einträge setzen
     
    ruerueka, 14.03.2006
  3. martinibook

    martinibook Thread StarterMacUser Mitglied

    Mitglied seit:
    20.08.2005
    Beiträge:
    8.632
    Zustimmungen:
    350
    Oh, ich denke immer, es gibt keine anderen Sprachen und DBs... lol
    Also:
    MySQL 5 über PHP (mysql_query)

    Problem ander deiner Idee ist, dass ja auch mal eine ID durch löschen fehlen könnte.

    Martin
     
    martinibook, 14.03.2006
  4. ruerueka

    rueruekaMacUser Mitglied

    Mitglied seit:
    04.04.2004
    Beiträge:
    1.080
    Zustimmungen:
    85
    Ne, das hast du falsch verstanden. Ichmeinte nicht ID, ich meinte wrklich den row count im Resultset.
    Beispiel: Du machst ne query und bekommst 100 Datensätze zurück (kann dir vielleicht der Treiber liefern, ich kenn mich mit php odbc etc nicht aus - es gibt also doch andere Sprachen ;-) , dann rufst du die random - Funktion deiner Sprache auf und übergibst ihr als untere Grenze 0 und als obere Grenze den row count. dann machst du nen setRow( zufallszahl ) auf dem result set.
    Mit Java / JDBC geht das prima. Aber das kann man sicher auch mit anderen sprachen bauen.

    ach ja: mysql spezifisch kannst du eine aus random( 0, count(*) ) ermittelte zufallszahl natürlich gleich in die query bauen, etwa so:
    SELECT * FROM BLA LIMIT 5, 1

    wobei 5 die Zufallszahl wäre.
     
    ruerueka, 14.03.2006
  5. martinibook

    martinibook Thread StarterMacUser Mitglied

    Mitglied seit:
    20.08.2005
    Beiträge:
    8.632
    Zustimmungen:
    350
    Gibt es denn nichts wie:
    SELECT * FROM tabelle ORDER BY random LIMIT 1
    Das fände ich am einfachsten und wahrscheinlich ist auch am schnellsten.

    Martin
     
    martinibook, 14.03.2006
  6. ruerueka

    rueruekaMacUser Mitglied

    Mitglied seit:
    04.04.2004
    Beiträge:
    1.080
    Zustimmungen:
    85
    Wenn schon, dann so:
    Code:
     SELECT * FROM TABELLE ORDER BY rand( ) LIMIT 1
    
    ABER das macht was anderes (logischerweise):
    es werden die ersten n Einträge gezogen (n=LIMIT, also hier 1) und dann zufällig sortiert. Lass es mal mit Limit 5 laufen, dann siehst du, was ich meine.
    Die Funktion rand() in der Spaltenliste auszugeben hab ich nicht geschafft, kann aber an meiner mysql version liegen (3.23).
    Ein subselect iin der limit clause geht auch nicht...

    Hier gibts nen Fred dazu:
    http://www.mediengestalter.info/forum/10/php-mysql-daten-aus-db-per-zufall-auslesen-42840-1.html
    Da es ne mysql Frage ist, bist du da besser aufgehoben.
     
    ruerueka, 14.03.2006
  7. martinibook

    martinibook Thread StarterMacUser Mitglied

    Mitglied seit:
    20.08.2005
    Beiträge:
    8.632
    Zustimmungen:
    350
    Ich meine, der Sortiert erst und dann das Limit, wie bei iTunes Listen. Ich habe einen MySQL-Vokabeltrainer der nach richtig_abfragen/gesammt_abfragen sortiert, mit Limit 1. Das klappt prima, ich werde immer die schlechteste gefragt :)

    Martin
     
    martinibook, 15.03.2006
Die Seite wird geladen...
Ähnliche Themen - Zufälliger Eintrag aus
  1. beatles
    Antworten:
    11
    Aufrufe:
    510
    beatles
    24.02.2017
  2. Saugkraft
    Antworten:
    6
    Aufrufe:
    381
    Saugkraft
    04.09.2016
  3. simusch
    Antworten:
    3
    Aufrufe:
    1.520
    simusch
    12.01.2012
  4. Der_Jan
    Antworten:
    1
    Aufrufe:
    1.116
    rm -r *
    31.10.2010
  5. DieTa
    Antworten:
    19
    Aufrufe:
    979
    Saugkraft
    08.03.2007