Hallo dedlfix,
»» »» SELECT * FROM tab ORDER BY [link:http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand@title=rand]([link:http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_curdate@title=curdate]()) LIMIT 1
Das wollte ich auch schon vorschlagen, doch bei meinen Versuchen lieferte RAND(CURRENT_DATE) (für konstante Werte von CURRENT_DATE) immer das gleiche Ergebnis.
Das wird ja gerade gewünscht.
Wenn jedoch bei einem Vergleich immer wieder die gleichen Werte verglichen werden, wie soll da eine Reihenfolge entstehen (von der man dann den ersten Datensatz nehmen könnte)?
Gute Frage. Für Mysql:
Ich habe meine Anfrage getestet und sie funktioniert meiner Meinung nach auch wie gewünscht.
SELECT * FROM tab ORDER BY curdate() liefert tatsächlich keine zufällige Verteilung, obwohl rand(curdate()) auch nur eine konstante Zahl zurück liefert (heute bei mir 0.7713711753221), genau wie curdate() (heute 20070626).
Vielleicht hilft Mysql bei solchen Anfragen einfach ein bisschen nach, um eine möglichst einfache Realisierung des Problems zu ermöglichen.
Grüße
Jasmin