【问题标题】:SQLite3 and limiting the number of resultsSQLite3 和限制结果的数量
【发布时间】:2015-08-03 13:39:08
【问题描述】:

有没有一种简洁的方法来限制 SQLite3 SELECT 语句的命中数?

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

如果 SQLite3 没有立即提供此功能,我可以在 SQLite3 源代码中编辑什么内容以进行重建吗?

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

【问题讨论】:

  • @All:谢谢 - 我愿意接受你的每一个答案。

标签: c sqlite limit


【解决方案1】:

您正在寻找LIMIT 子句:

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

【讨论】:

    【解决方案2】:

    查看SELECT 语法:有一个LIMIT 关键字:

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

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

    【讨论】:

      【解决方案3】:

      来自SQLite docs

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

      【讨论】:

        猜你喜欢
        • 2015-03-02
        • 2011-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-20
        • 2021-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多