MYSQL从第n个结果开始(与LIMIT相反)

时间:2014-11-19 05:38:00

标签: mysql sql sql-limit

是否有一个SQL命令可以从一定数量的结果开始? 例如:

SELECT * FROM table WHERE ID=1 BEGIN AT 100

3 个答案:

答案 0 :(得分:1)

尝试创建一个临时行号,然后将其用作您的案例100中起点的条件,例如:

 SELECT * FROM (
      SELECT (@RowNum := @RowNum + 1) as Row, tbl.* FROM tbl, 
        (SELECT @RowNum:=0) ctr
       ) t
 WHERE Row >= 100

参见 Demo

答案 1 :(得分:0)

来自:http://dev.mysql.com/doc/refman/5.0/en/select.html

要从特定偏移量检索所有行直到结果集的末尾,可以使用一些大数字作为第二个参数。此语句检索从第96行到最后一行的所有行:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

在你的情况下:

SELECT * FROM table WHERE ID=1 BEGIN AT 99,18446744073709551615

更多信息:

对于预准备语句,您可以使用占位符(从MySQL 5.0.7版开始支持)。以下语句将从tbl表中返回一行:

SET @a=1;
PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?';
EXECUTE STMT USING @a;

以下语句将返回tbl表中的第二行到第六行:

SET @skip=1; SET @numrows=5;
PREPARE STMT FROM 'SELECT * FROM tbl LIMIT ?, ?';
EXECUTE STMT USING @skip, @numrows;

答案 2 :(得分:0)

  

SELECT * FROM table WHERE ID = 1 LIMIT 100,500;

结果将显示100的值