PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Query SQL per impaginazione con più colonne; capire l'operatore OR

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.