sql >> Database >  >> RDS >> Mysql

Hoe krijg ik een willekeurige rij voor de huidige dag?

Gebruik een seed voor de generator van willekeurige getallen op basis van de huidige datum:

ORDER BY RAND(20120714) LIMIT 1

Ik ben ook benieuwd wat je hier bedoelde met "andere":

Als u een andere . wilt selecteren willekeurige quote elke dag, dan moet je geen simpele ORDER BY RAND(seed) gebruiken . Dit kan drie dagen op rij dezelfde quote opleveren.

Als u dit wilt voorkomen, kunt u in plaats daarvan opslaan welke koers voor elke dag is geselecteerd en een willekeurige koers kiezen uit de koersen die de afgelopen n dagen niet zijn gebruikt. Als u opslaat wanneer een offerte voor het laatst is gebruikt, is er natuurlijk ook een natuurlijke oplossing voor uw oorspronkelijke probleem:

  • Zoek naar een citaat dat vandaag voor het laatst is gebruikt.
  • Als er een is, is dat de quote van de dag.
  • Zo niet, selecteer dan een nieuw citaat van de dag uit rijen die de afgelopen n dagen niet zijn gebruikt, en werk de rij bij om aan te tonen dat het het citaat van de dag voor vandaag is.

Oké, wat dacht je van een iets andere aanpak:

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

Nu heb je geen extra kolom meer nodig en krijg je geen herhalingen, behalve misschien als de maand verandert. Deze oplossing gaat ervan uit dat je minimaal 32 offertes hebt om uit te kiezen.



  1. Het Smart Home-gegevensmodel

  2. jBPM 6.5 + Tomcat 8 + Bitronix Transactie + Oracle 11G configuratie | Kan sessie java.lang.NullPointerException niet vastleggen

  3. mysql invoegen indien niet aanwezig zonder unieke sleutel

  4. dynamisch tabelnaam doorgeven in orakel voor lus