# Paginating Top-30 Terrestrial Planets by Mass with page size 10
__*LIMIT clause*__
__*Optimize LIMIT offset operation*__

+ Previous last: `| 34234234234 | XXXX               | 90148 |`
+ The next 10 rows in 2nd page:
```
SELECT id, name, mass
  FROM planets
  WHERE category_id = 1
    ~!@AND mass <= 90148@!~
    ~!@AND NOT (mass = 90148 and id >= 34234234234)@!~
  ORDER BY mass DESC, id DESC
  LIMIT 10;
+-----+--------------------+-------+
| id  | name               | mass  |
+-----+--------------------+-------+
| 233 | _^tUw]QWZ;x-'uiF'C | 90148 |
...
| 113 | &EYcK>f(e0S=KeK3qQ | 83163 |
+-----+--------------------+-------+
10 rows in set (0.00 sec)
```

------------------------------------------------------------
Then, we record the previous last planet's mass and id, use it in our where predicator.

```
tidb> SELECT id, name, mass
    ->   FROM planets
    ->   WHERE category_id = 1
    ->    AND mass <= 90148
    ->    AND NOT (mass = 90148 and id >= 34234234234)
    ->  ORDER BY mass DESC, id DESC
    ->  LIMIT 10;
+-----+--------------------+-------+
| id  | name               | mass  |
+-----+--------------------+-------+
| 233 | _^tUw]QWZ;x-'uiF'C | 90148 |
| 407 | JSRX.A}v:Ly2C"y2Iz | 88735 |
| 218 | jow),vY[lV|Npeifzp | 87677 |
|  70 | ks)F}Prf6b5_ijDi3{ | 87090 |
| 350 | ]h6ZO)B?Xj>[%U59bw | 86529 |
|  23 | HUyk:-u^,T=NQ5#:rz | 85865 |
|  36 | }O+;&XdG[*-k!:5%bJ | 85735 |
| 420 | k.75WT!A;,$R\3A)hd | 84204 |
| 302 | {g>shkXCW:0_kb@xa9 | 84200 |
| 113 | &EYcK>f(e0S=KeK3qQ | 83163 |
+-----+--------------------+-------+
10 rows in set (0.00 sec)

```
