sql >> Databáze >  >> RDS >> PostgreSQL

SQL dotaz pro stránkování s více sloupci; pochopit operátor OR

Účel OR -- jak tušíte -- je řešit případ, kdy jsou skóre nerozhodné. Cílem je vytvořit stabilní řazení zahrnutím id , takže tohle dostane všechno po (score, id) .

Pravděpodobně hodnoty použité pro score a id jsou naposledy zobrazené hodnoty (pravděpodobně na předchozí stránce, ale to je spekulace).

"Stabilní" řazení je takové, které vrací řádky ve stejném pořadí pokaždé, když je použito. Protože tabulky SQL představují neuspořádané množiny, vazby znamenají nestabilní seřadit. Včetně id dělá to stabilní (za předpokladu, že id je jedinečný.

Postgres ve skutečnosti podporuje zjednodušenou syntaxi:

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

Všimněte si, že jsem také odstranil jednoduché uvozovky. Hodnoty vypadají jako čísla, takže by se s nimi mělo zacházet jako s čísly, nikoli jako řetězce.




  1. vybraní uživatelé mají více než jeden odlišný záznam v mysql

  2. django.db.utils.IntegrityError:duplicitní hodnota klíče porušuje jedinečné omezení spirit_category_category_pkey

  3. Správa vysoké dostupnosti v PostgreSQL – Část II:Správce replikací

  4. PDO mysql:Jak zjistit, zda bylo vložení úspěšné