Janko Wellmeier: SQL: Einen Datensatz zufällig ausgeben?

Beitrag lesen

Hallo!
Ich geb Dir zwar recht, daß es etwas aufwendig ist, möglich ist es aber auch.
Streng nach dem Motto geht nicht gibt's nicht ;-)

Wenn Du es also doch realisieren willst, so mußt Du zuerst ein Recordset erstellen, in dem Deine Bedingung vorkommt.
Dort hast Du dann z.B. 5 Datensätze enthalten.
Nun erstellst Du ein Array und liest die Ids in dieses ein.
Wähle jetzt ein Element zuällig aus dem Array aus und Du hast die ID des "gesuchten" Datensatzes.

Wenn Du das ganze auch noch universal machen möchtest (vielleicht später nochmal benutzen für andere Recordsets) packts Du das ganze in eine Funktion.
Ich würde allerdings bei der Funktion auch das erste Recordset mitübergen (und eben nicht erst dort drinnen erzeugen), somit bist Du auch noch unabhängig von Tabellen und Datenbanken.
Als Rückgabe wert nimmst Du nur noch die ID und fertig!

Ich habe sowas ähnliches auch mal realisiert.
Dabei habe ich allerdings noch 2 Sachen angefügt:
1. Ein zähler, damit nicht zufällig ein Datensatz 5 mal ausgewählt wird
2. Noch eine Funktion vor der Funktion, die ich oben beschrieben habe. An diese übergab ich nur den Tabellennamen, die Bedingung, die Datenbank und in einem Array die Felder, die ich haben wollte. Zurück kamen in einem Array eben die Werte dieser Felder.

MfG
JankoW