Użyj zalążka generatora liczb losowych na podstawie aktualnej daty:
ORDER BY RAND(20120714) LIMIT 1
Jestem też ciekaw, co miałeś na myśli mówiąc „inne” tutaj:
Jeśli chcesz wybrać inny losowy cytat każdego dnia, nie powinieneś używać prostego ORDER BY RAND(seed)
. To może zwrócić ten sam cytat trzy dni z rzędu.
Jeśli chcesz tego uniknąć, możesz zamiast tego zapisać, który cytat jest wybrany na każdy dzień i wybrać losowy cytat spośród tych, które nie były używane w ciągu ostatnich n dni. Oczywiście, jeśli przechowujesz datę ostatniego użycia cytatu, istnieje również naturalne rozwiązanie pierwotnego problemu:
- Poszukaj cytatu, który był ostatnio używany dzisiaj.
- Jeśli taki jest, to jest to cytat dnia.
- Jeśli nie, wybierz nowy cytat dnia z wierszy, które nie były używane w ciągu ostatnich n dni, i zaktualizuj wiersz, aby pokazać, że jest to cytat dnia na dzisiaj.
OK, co powiesz na nieco inne podejście:
ORDER BY RAND(201207) LIMIT 14, 1
-- yyyymm dd
Teraz nie potrzebujesz dodatkowej kolumny i nie będziesz otrzymywać powtórzeń, chyba że zmieni się miesiąc. To rozwiązanie zakłada, że masz do wyboru co najmniej 32 cytaty.