Използвайте начало за генератора на произволни числа въз основа на текущата дата:
ORDER BY RAND(20120714) LIMIT 1
Също така съм любопитен какво имате предвид под „други“ тук:
Ако искате да изберете различен случаен цитат всеки ден, тогава не трябва да използвате обикновен ORDER BY RAND(seed)
. Това може да върне една и съща оферта три дни подред.
Ако искате да избегнете това, можете вместо това да съхраните коя оферта е избрана за всеки ден и да изберете произволна оферта от тези, които не са били използвани през последните n дни. Разбира се, ако съхранявате кога последно е използван цитат, има и естествено решение на първоначалния ви проблем:
- Потърсете цитат, използван последно днес.
- Ако има такъв, това е цитатът на деня.
- Ако не, тогава изберете нов цитат за деня от редове, които не са били използвани през последните n дни, и актуализирайте реда, за да покажете, че това е цитатът за деня за днес.
Добре, какво ще кажете за малко по-различен подход:
ORDER BY RAND(201207) LIMIT 14, 1
-- yyyymm dd
Сега нямате нужда от допълнителна колона и няма да получавате повторения, освен може би при промяна на месеца. Това решение предполага, че имате поне 32 цитата за избор.