Hola pollin14:
Sólo una observación, esta consulta
Cita: select * from TABLA where col2 = lastCheck and col1 > id;
En realidad no regresa ningún registro, al menos no con los datos que pones de ejemplo. Creo que la segunda condición debería ser
col1 = id no??? y creo que deberías utilizar OR;
Código MySQL:
Ver original+------+------+
| col1 | col2 |
+------+------+
| 0 | 18 |
| 1 | 18 |
| 2 | 18 |
| 0 | 19 |
| 1 | 19 |
| 2 | 19 |
| 0 | 20 |
| 0 | 21 |
+------+------+
mysql
> SET @lastCheck
= 18;Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
-> (col2
= @lastCheck
AND col1
= @id
) OR -> col2 > @lastCheck;
+------+------+
| col1 | col2 |
+------+------+
| 2 | 18 |
| 0 | 19 |
| 1 | 19 |
| 2 | 19 |
| 0 | 20 |
| 0 | 21 |
+------+------+
Saludos
Leo.