SQLite3并限制结果数量

是否有一种干净的方法来限制SQ​​Lite3 SELECT语句的命中数?

例如,我可以查询SELECT * FROM myTable WHERE name='Smith'; 意识到我可能会遇到成千上万的点击。 我想让SQLite3告诉我它遇到的前10个然后终止查询。 我该怎么做呢?

如果SQLite3没有立即提供,那么我可以在SQLite3源代码中编辑任何可以重建的内容吗?

假设我在一个只有一个线程的环境中,我想在合理的时间内控制回来。

您正在寻找LIMIT条款:

 SELECT * FROM myTable WHERE name='Smith' LIMIT 10 

请参阅SELECT语法:有一个LIMIT关键字:

 select * from sometable where .... limit 10; 

另外看OFFSET ,可以对分页结果有所帮助。 (如果您希望跨查询获得一致的结果,这些通常也会与ORDER BY子句结合使用。)

从SQLite文档 :

LIMIT子句用于为SELECT语句返回的行数设置上限。 任何标量表达式都可以在LIMIT子句中使用,只要它计算为整数或可以无损转换为整数的值即可。 如果表达式求值为NULL值或任何其他无法无损转换为整数的值,则返回错误。 如果LIMIT表达式求值为负值,则返回的行数没有上限。 否则,SELECT仅返回其结果集的前N行,其中N是LIMIT表达式求值的值。 或者,如果SELECT语句在没有LIMIT子句的情况下返回少于N行,则返回整个结果集。