【问题标题】:Number of rows returned in a sqlite statementsqlite 语句中返回的行数
【发布时间】:2011-02-18 20:01:20
【问题描述】:

有什么简单的方法可以获取 sqlite 语句返回的行数吗?我不想先完成 COUNT() 的过程。谢谢。

【问题讨论】:

    标签: iphone objective-c sqlite


    【解决方案1】:

    在每次调用 sqlite_step 时,将变量加 1。

    如果你想要提前行计数,那么没有简单的方法。

    【讨论】:

    • 谢谢 dan,增加变量似乎是最简单的方法。
    • 这是个坏消息。我想malloc一个数组来存储结果,不调用两次同一个select语句就无法提前知道需要多大!
    【解决方案2】:

    要统计表中的所有条目,可以使用以下 SQL 语句:

    SELECT COUNT(*) FROM "mytable" where something=42;
    

    或仅通过以下方式获取所有条目:

    SELECT COUNT(*) FROM "mytable";
    

    如果您已经完成查询,并且只想要返回的条目数,您可以使用 sqlite3_data_count() 和 sqlite3_column_count(),具体取决于您要计算的内容。

    【讨论】:

    • OP 专门要求一种方法来避免 COUNT.
    • sqlite3_data_countsqlite3_column_count 都返回列数,前者用于当前行,后者用于语句本身。特别是,SQLite 中没有函数告诉您一条语句将返回多少行,因为它不知道。您必须遍历行,或执行单独的 COUNT(*) 查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多