sql >> Databáze >  >> RDS >> Mysql

Jak získat náhodný řádek pro aktuální den?

Použijte zdroj pro generátor náhodných čísel na základě aktuálního data:

ORDER BY RAND(20120714) LIMIT 1

Také by mě zajímalo, co jste zde myslel tím "jiné":

Pokud chcete vybrat jiný každý den náhodnou citaci, pak byste neměli používat jednoduchý ORDER BY RAND(seed) . To by mohlo vrátit stejnou nabídku tři dny po sobě.

Pokud se tomu chcete vyhnout, můžete místo toho uložit, která nabídka je vybrána pro každý den, a vybrat náhodnou nabídku z těch, které nebyly v posledních n dnech použity. Samozřejmě, pokud ukládáte, kdy byla nabídka naposledy použita, pak existuje také přirozené řešení vašeho původního problému:

  • Hledejte nabídku, která byla naposledy použita dnes.
  • Pokud existuje, je to citát dne.
  • Pokud ne, vyberte novou nabídku dne z řádků, které nebyly v posledních n dnech použity, a aktualizujte řádek tak, aby ukazoval, že se jedná o nabídku dne pro dnešek.

Dobře, co takhle trochu jiný přístup:

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

Nyní nepotřebujete další sloupec a nebudete dostávat opakování, snad kromě případů, kdy se změní měsíc. Toto řešení předpokládá, že máte na výběr alespoň 32 nabídek.



  1. Kde si mohu stáhnout ukázkovou databázi Mysql?

  2. Jak odinstalovat / úplně odebrat Oracle 11g (klient)?

  3. Chyba 1045 přístup k MySQL odepřen

  4. Vícenásobné, ale vzájemně se vylučující cizí klíče – je toto cesta?