首页 文章

SQLite3并限制结果数量

提问于
浏览
7

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

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

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

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

3 回答

  • 3

    你正在寻找 LIMIT 条款:

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

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

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

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

  • 12

    来自SQLite docs

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

相关问题