问题描述
|
有没有一种干净的方法来限制来自sqlite3
SELECT
语句的命中数?
例如,我可能用ѭ1进行查询,意识到我可能遇到数千个匹配。我希望sqlite3告诉我它遇到的前10个,然后终止查询。我该怎么做呢?
如果sqlite3没有立即提供此功能,我可以在sqlite3源代码中进行编辑的内容吗?
假设我处于一个只有一个线程并且希望在合理的时间内进行控制的环境中。
解决方法
您正在寻找
LIMIT
子句:
SELECT * FROM myTable WHERE name=\'Smith\' LIMIT 10
, 请参阅SELECT语法:有一个LIMIT
关键字:
select * from sometable where .... limit 10;
还要查看ѭ6,这可能有助于分页结果。 (如果您希望在查询中获得一致的结果,通常也将这些与ORDER BY
子句结合使用。)
, 从SQLite文档中:
LIMIT子句用于在SELECT语句返回的行数上设置上限。任何标量表达式都可以在LIMIT子句中使用,只要它的计算结果为整数或可以无损地转换为整数的值即可。如果表达式的计算结果为NULL值或任何其他不能无损地转换为整数的值,则将返回错误。如果LIMIT表达式的结果为负值,则返回的行数没有上限。否则,SELECT仅返回其结果集中的前N行,其中N是LIMIT表达式求值的值。或者,如果SELECT语句在没有LIMIT子句的情况下返回少于N行,则将返回整个结果集。