SQLite3并限制结果数量

时间:2011-06-13 10:04:25

标签: c sqlite limit

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

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

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

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

3 个答案:

答案 0 :(得分:12)

您正在寻找LIMIT子句:

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

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:3)

来自SQLite docs

  

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