sql >> Database >  >> RDS >> PostgreSQL

SQL-query voor paginering met meerdere kolommen; OR-operator begrijpen

Het doel van de OR -- zoals u vermoedt -- is om de zaak af te handelen waarin de scores gelijk zijn. Het idee is om een ​​stabiele sortering te maken door de id , dus dit krijgt alles na (score, id) .

Vermoedelijk zijn de waarden die worden gebruikt voor score en id zijn de laatst geziene waarden (waarschijnlijk op de vorige pagina, maar dat is speculatie).

Een "stabiele" sortering is er een die de rijen in dezelfde volgorde retourneert telkens wanneer deze wordt toegepast. Omdat SQL-tabellen ongeordend vertegenwoordigen sets, banden impliceren een instabiele soort. Inclusief de id maakt het stabiel (ervan uitgaande dat id is uniek.

Postgres ondersteunt eigenlijk een simper-syntaxis:

where (score, id) > (11266, 4482)

Merk op dat ik ook de enkele aanhalingstekens heb verwijderd. De waarden zien eruit als getallen, dus ze moeten worden behandeld als getallen en niet als tekenreeksen.




  1. mysql invoegen in tabel indien aanwezig

  2. MySQL COALESCE- en NULLIF-functie

  3. MySQL SELECTEER WHERE IN LIST en NOT IN LIST in dezelfde SQL

  4. Database-ontwerp met Vertabelo