| FAQ |
| Kalender |
|
|
|
|
#1 | ||
|
|||
|
Flitig postare
|
Något i stil med detta, kanske:
Kod:
SELECT col1, col2, ..., -RAND()*UNIX_TIMESTAMP(PostDate) AS random_value FROM TestTable ORDER BY random_value ASC Annars kan du lösa det med lite kod i ditt favoritspråk. Ta ut ett slumptal, t.ex. mellan 2000 och 2013 (eller vad du nu har för årtal på raderna i databasen), och kör något i stil med: Kod:
SELECT col1, col2, ... FROM TestTable WHERE YEAR(PostDate) <= $slumptal ORDER BY RAND() |
||
|
|
Svara med citat
|
|
|
#2 | ||
|
|||
|
Flitig postare
|
|||
|
|
Svara med citat
|
|
|
#3 | ||||
|
|||||
|
Medlem
|
Tack för svaren
Citat:
Tex om jag gör 3st "brytpunkter" där jag väljer ut tex 100st rader av dom 33% äldsta raderna, 50st rader av 33% av dom mellersta raderna och 25st av dom 33% senaste raderna i databasen och därefter gör ett random urval på dom sammanställda raderna. Då är ju oddsen större att rand() tar någon av dom 100 äldsta än av dom 25st senaste, skall testa. Citat:
Citat:
Exempel 2 skulle nog inte fungera som tänkt för om jag slumpar ett årtal så kommer den bara hämta rader äldre/nyare än slumptalet, alltså alla 10 av dom raderna jag vill ha, men jag vill ha så att 2st av dom 10 skulle kunna vara bland dom 5 senaste raderna i tabellen, 2st i mitten av tabellen och 6st mot dom allra äldsta i tabellen. Citat:
|
||||
|
|
Svara med citat
|
|
|
#4 | ||
|
|||
|
Supermoderator
|
Citat:
__________________
Full-stack developer, free for smaller assignments |
||
|
|
Svara med citat
|
| Svara |
|
|