Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получа произволен ред за текущия ден?

Използвайте начало за генератора на произволни числа въз основа на текущата дата:

ORDER BY RAND(20120714) LIMIT 1

Също така съм любопитен какво имате предвид под „други“ тук:

Ако искате да изберете различен случаен цитат всеки ден, тогава не трябва да използвате обикновен ORDER BY RAND(seed) . Това може да върне една и съща оферта три дни подред.

Ако искате да избегнете това, можете вместо това да съхраните коя оферта е избрана за всеки ден и да изберете произволна оферта от тези, които не са били използвани през последните n дни. Разбира се, ако съхранявате кога последно е използван цитат, има и естествено решение на първоначалния ви проблем:

  • Потърсете цитат, използван последно днес.
  • Ако има такъв, това е цитатът на деня.
  • Ако не, тогава изберете нов цитат за деня от редове, които не са били използвани през последните n дни, и актуализирайте реда, за да покажете, че това е цитатът за деня за днес.

Добре, какво ще кажете за малко по-различен подход:

ORDER BY RAND(201207) LIMIT 14, 1
--            yyyymm        dd

Сега нямате нужда от допълнителна колона и няма да получавате повторения, освен може би при промяна на месеца. Това решение предполага, че имате поне 32 цитата за избор.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализиране на данни в MySQL база данни

  2. MySQL - Актуализиране на редовете на таблицата без заключване на редовете

  3. Заявки за намиране на места в дадена шир

  4. java.lang.ClassNotFoundException:com.mysql.jdbc.Driver по време на изпълнение (eclipse / maven /tomcat)

  5. Как да премахнете дублиращи се стойности, разделени със запетая, в една колона в MySQL