Antag, at du prøver at sortere denne array-af-arrays efter det første element:
[
[ 1, 1 ],
[ 1, 2 ],
[ 1, 3 ]
]
Begge disse (og flere andre) er gyldige resultater, fordi du har dublerede sorteringsnøgler:
[ [1,1], [1,2], [1,3] ]
[ [1,3], [1,1], [1,2] ]
Du støder på det samme problem inde i databasen. Du siger det:
Så disse fem værdier kan vises i enhver rækkefølge og stadig opfylde din angivne ORDER BY-tilstand. De behøver ikke engang at komme ud af databasen i samme rækkefølge i to udførelser af den samme forespørgsel.
Hvis du ønsker ensartet rækkefølge, skal du sikre dig, at hver række i dit resultatsæt har en unik sorteringsnøgle, så båndene brydes konsekvent. Dette er ActiveRecord, så du har et unikt id
tilgængelig, så du kan bruge det til at bryde dine bestillingsbånd:
result = Rom::Leaderboard.order('pvp_vs desc, win_percent desc, id').limit(200)
# --------------------------------------------------------------^^
Det vil give dig en veldefineret og unik bestilling.