Michael: RAND() mysql

Beitrag lesen

Tach allerseits,
ich gehe eher davon aus, daß sich sulu nur etwas misverständlich ausgedrückt hat.

Ich versteh darunter eher, daß ein Satz zufälliger Einträge aus der Tabelle gesucht wird
und 5min lang bei wiederholtem Aufruf immer die gleichen Einträge angezeigt werden sollen.

Generell bekommt man einen Satz zufälliger Einträge,
wenn man zur sql-Abfrage ORDER BY RAND() angibt.
Die Anzahl der gewünschten Werte dazu mit LIMIT.
Also z.B. SELECT * FROM table ORDER BY RAND() LIMIT 3;

RAND ist aber auch nur eine Funktion. - Gibt man ihr nen Basiswert,
so bekommt man bei gleichem Basiswert stets die gleichen "zufälligen" 3 Zeilen.

Also braucht man lediglich eine Funktion, die nur alle 5min ihr Ergebnis ändert.

NOW() = jetzt (einschließlich Sekunden)
5min = 300sek.
also:  CEIL(NOW()/300)  <--5min lang das gleiche Ergebnis.

das schnell oben einbauen:

SELECT * FROM table ORDER BY RAND(CEIL(NOW()/300)) LIMIT 3

Diese Abfrage gibt 3 Zufallszeilen aus und verändert erst nach 5min den Ergebnissatz.

fettich.

Schönen Gruß!

Michael