是否有一个SQL命令可以从一定数量的结果开始? 例如:
SELECT * FROM table WHERE ID=1 BEGIN AT 100
答案 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的值