Řekněme, že máme nějaký seznam záznamů řazený třeba podle názvu a v detailu každého záznamu chceme zobrazit informaci o tom, kolikátý v seznamu je, a odkaz na předchozí a následující záznam.
Pokud je základní dotaz SELECT * FROM `clanky` ORDER BY `nadpis`, můžeme pořadí zjistit dotazem SELECT COUNT(*) FROM `clanky` WHERE `nadpis` <= @nadpis, kde @nadpis je nadpis aktuálního článku. Problém vznikne v případě, kdy se dva články jmenují stejně – u nich se vrátí pořadí posledního článku daného jména.
Vyřešit se to dá přidáním nějakého unikátního sloupce do řazení i do podmínky: z ORDER BY `nadpis`, `id` vznikne WHERE (`nadpis`, `id`) <= (@nadpis, @id) nebo složitější WHERE `nadpis` < @nadpis OR (`nadpis` = @nadpis AND `id` <= @id). To také dává návod na to, jak postupovat při řazení podle více sloupců. U dotazů používajících agregaci lze dotaz zjišťující počet obvykle položit bez agregace. Pokud to nejde, lze to vyřešit poddotazem.
Odkaz na předchozí záznam se dá zjistit dotazem SELECT * FROM `clanky` WHERE (`nadpis`, `id`) < (@nadpis, @id) ORDER BY `nadpis` DESC, `id` DESC LIMIT 1, odkaz na následující záznam obdobně. Pokud už máme zjištěné pořadí záznamu, dá se použít také "SELECT * FROM clanky ORDER BY nadpis, id LIMIT 1 OFFSET " . ($poradi - 2).