Lo scopo del OR
-- come sospetti -- è gestire il caso in cui ci sono pareggi nei punteggi. L'idea è di creare un ordinamento stabile includendo l'id
, quindi questo ottiene tutto dopo (score, id)
.
Presumibilmente, i valori usati per score
e id
sono gli ultimi valori visti (probabilmente nella pagina precedente, ma questa è speculazione).
Un ordinamento "stabile" è quello che restituisce le righe nello stesso ordine ogni volta che viene applicato. Perché le tabelle SQL rappresentano non ordinate set, i pareggi implicano un instabile ordinare. Compreso l'id
lo rende stabile (supponendo che id
è unico.
Postgres in realtà supporta una sintassi più semplice:
where (score, id) > (11266, 4482)
Nota che ho anche rimosso le virgolette singole. I valori sembrano numeri, quindi dovrebbero essere trattati come numeri e non come stringhe.