SQLite3 和限制结果数量

发布于 2024-11-15 10:02:07 字数 268 浏览 0 评论 0原文

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

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

如果 SQLite3 没有立即提供此功能,我可以在 SQLite3 源代码中编辑哪些内容来重建?

假设我处于一个只有一个线程的环境中,并且我希望在合理的时间内恢复控制权。

Is there a clean way to limit the number of hits from an SQLite3 SELECT statement?

For example, I might query with SELECT * FROM myTable WHERE name='Smith'; realising I could encounter thousands of hits. I'd like SQLite3 to give me say the first 10 it encounters and then terminate the query. How do I do this?

If SQLite3 does not provide this immediately, is there anything I can edit in the SQLite3 source code from which I can rebuild?

Assume I'm in an environment where I have only one thread and I'd like control back in a reasonable time.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

撩心不撩汉 2024-11-22 10:02:07

您正在寻找 LIMIT 子句:

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

You're looking for the LIMIT clause:

SELECT * FROM myTable WHERE name='Smith' LIMIT 10
陌上芳菲 2024-11-22 10:02:07

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

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

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

See the SELECT syntax: there is a LIMIT keyword:

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

Look at the OFFSET too, can be helpful for paging results. (Also these are often combined with an ORDER BY clause if you want consistent results across queries.)

动次打次papapa 2024-11-22 10:02:07

来自 SQLite 文档

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

From the SQLite docs:

The LIMIT clause is used to place an upper bound on the number of rows returned by a SELECT statement. Any scalar expression may be used in the LIMIT clause, so long as it evaluates to an integer or a value that can be losslessly converted to an integer. If the expression evaluates to a NULL value or any other value that cannot be losslessly converted to an integer, an error is returned. If the LIMIT expression evaluates to a negative value, then there is no upper bound on the number of rows returned. Otherwise, the SELECT returns the first N rows of its result set only, where N is the value that the LIMIT expression evaluates to. Or, if the SELECT statement would return less than N rows without a LIMIT clause, then the entire result set is returned.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文