sql >> Database teknologi >  >> RDS >> Mysql

Hvordan får man en tilfældig række for den aktuelle dag?

Brug et frø til generatoren af ​​tilfældige tal baseret på den aktuelle dato:

ORDER BY RAND(20120714) LIMIT 1

Jeg er også nysgerrig efter hvad du mente med "andet" her:

Hvis du vil vælge en anden tilfældigt citat hver dag, så skal du ikke bruge en simpel ORDER BY RAND(seed) . Dette kunne returnere det samme tilbud tre dage i træk.

Hvis du vil undgå, at dette sker, kan du i stedet gemme, hvilket tilbud der er valgt for hver dag og vælge et tilfældigt tilbud blandt dem, der ikke er blevet brugt i de sidste n dage. Selvfølgelig, hvis du gemmer, hvornår et tilbud sidst blev brugt, er der også en naturlig løsning på dit oprindelige problem:

  • Søg efter et tilbud, der sidst blev brugt i dag.
  • Hvis der er en, er det dagens citat.
  • Hvis ikke, så vælg et nyt dagens citat fra rækker, der ikke er blevet brugt i de sidste n dage, og opdater rækken for at vise, at det er dagens citat for i dag.

OK, hvad med en lidt anderledes tilgang:

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

Nu behøver du ikke en ekstra kolonne, og du vil ikke få gentagelser, undtagen måske når måneden skifter. Denne løsning forudsætter, at du har mindst 32 tilbud at vælge imellem.



  1. Syntaksfejl under forsøg på at kalde en Oracle-pakke ved hjælp af ODBC i C#

  2. Linq-forespørgsel opfører sig ikke som forventet

  3. PHP og MySQL - hvordan undgår man adgangskode i kildekoden?

  4. Konverter tidsstreng til decimaltimer PHP