可能重复:
SQLite 中的 Select 语句识别行号
例如,SELECT * FROM table WHERE [row] BETWEEN x AND y
如何才能做到这一点?我做了一些阅读,但没有发现任何特别正确的东西。
想象一个列表,您希望结果按 X 数量的结果分页,因此对于第 10 页,您需要第 10 * X 到 10 * X + X 行的结果。而不是一次性显示所有结果
可能重复:
SQLite 中的 Select 语句识别行号
例如,SELECT * FROM table WHERE [row] BETWEEN x AND y
如何才能做到这一点?我做了一些阅读,但没有发现任何特别正确的东西。
想象一个列表,您希望结果按 X 数量的结果分页,因此对于第 10 页,您需要第 10 * X 到 10 * X + X 行的结果。而不是一次性显示所有结果
对于 mysql 你有限制,你可以触发查询:
SELECT * FROM table limit 100` -- get 1st 100 records
SELECT * FROM table limit 100, 200` -- get 200 records beginning with row 101
对于 Oracle,您可以使用rownum
请参阅limit
此处的 mysql 选择语法和用法。
对于 SQLite,您有limit, offset
. 我没有使用过 SQLite,但我在SQLite Documentation上进行了检查。在此处查看 SQLite 的示例。
在您澄清后,您正在寻找限制:
SELECT * FROM `table` LIMIT 0, 10
这将显示数据库中的前 10 个结果。
SELECT * FROM `table` LIMIT 5, 5 .
将显示 5-9 (5,6,7,8,9)
语法遵循以下模式:
SELECT * FROM `table` LIMIT [row to start at], [how many to include] .
用于选择列在两个值之间的行的 SQL是:
SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2
见:http ://www.w3schools.com/sql/sql_between.asp
如果要继续行号,可以使用 rownum:
SELECT column_name(s)
FROM table_name
WHERE rownum
BETWEEN x AND y
但是,我们需要知道您使用的是哪个数据库引擎,因为大多数情况下 rownum 是不同的。
您可以使用rownum:
SELECT * FROM table WHERE rownum > 10 and rownum <= 20
使用介于条件
SELECT *
FROM TEST
WHERE COLUMN_NAME BETWEEN x AND y ;
或使用 Just 运算符,
SELECT *
FROM TEST
WHERE COLUMN_NAME >= x AND COLUMN_NAME <= y;
使用LIMIT子句:
/* rows x- y numbers */
SELECT * FROM tbl LIMIT x,y;
假设id
是表的主键:
SELECT * FROM table WHERE id BETWEEN 10 AND 50
对于前 20 个结果
SELECT * FROM table order by id limit 20;
您是否尝试过自己的代码?
这应该有效:
SELECT * FROM people WHERE age BETWEEN x AND y