# Zufällige Zeile auslesen



## Datenbank-Ausleser (9. Apr 2005)

Hallo,

ich möchte aus einer MySql-Tabelle eine Zeile per Zufall auslesen, hat jemand eine Idee wie ich das möglichst effizient und schnell machen kann?


----------



## Guest (9. Apr 2005)

Zufallszahl erzeugen 
int i=0;

```
while(result.next)
{
if(i==zufallszahl)
{
System.out.println(result.getString(i));
}
i++
}
```


----------



## Datenbank-Ausleser (9. Apr 2005)

Daran hatte ich auch schon gedacht, aber dazu muss ja erst die Anzahl der Zeilen der Tabelle holen um eine Obergrenze für die Zufallszahl zu haben.
Geht das vielleicht auch "in einem Rutsch"? Vielleicht mit einem SQL-Kommando?


----------



## Bleiglanz (9. Apr 2005)

SELECT RANDOM

=> lies die Doku, mysql hat da eine eigene Funktion dafür...


----------



## Datenbank-Ausleser (9. Apr 2005)

Ganz so einfach isses dann doch nicht. ;-)
Hab was in der Doku gefunden, soll aber bei grossen Tabelle etwas langsam sein.


```
SELECT * 
FROM recipies 
ORDER BY RAND(NOW()) 
LIMIT 1
```


----------



## Bleiglanz (10. Apr 2005)

was du willst KANN bei einer grossen tabelle gar nicht schnell sein

aber das mit dem order by ist natürlich nicht perfekt


----------



## major7 (18. Apr 2005)

Ich habe das ganze gerade mit mckoi versucht, 

SELECT *
FROM recipies
ORDER BY RAND(NOW())
LIMIT 1

geht nicht (kennt kein RAND)


----------

