It's an SQL thing. Note that for unordered queries, talking
about the 20th to the 50th row doesn't make any sense.
There's no order, so there's no 20th or 50th. There are
some databases out there that allow you to specify "20th to
50th row", but that's not portable, and you can't be sure
you get the same results when doing the same query again
(if the database would garantee the same results, it would
have an implicite order, which would prevent the database
from doing all kinds of optimizations).
The standard way is to use an index, sort the query using
the index, and using an appropriate where clause to select
the 20th to 50th row. This will give you a repeatable query.