【问题标题】:iPhone Dev - Trying to access every row of a sqlite3 table sequentiallyiPhone Dev - 尝试按顺序访问 sqlite3 表的每一行
【发布时间】:2011-10-10 11:08:12
【问题描述】:

这是我第一次使用 SQL,所以这听起来很基础。我正在制作一个创建和使用 sqlite3 数据库的 iPhone 应用程序(我正在使用 libsqlite3.dylib 数据库以及导入“sqlite3.h”)。我已经能够正确地在其中创建数据库和表,但现在我需要知道从中取回数据的最佳方法。

我将如何检索表中的所有信息?我能够按照表格中的顺序访问每一行,这一点非常重要。我想做的(如果有帮助的话)是从一行中的各个字段中获取所有信息,将所有信息放入一个对象中,然后将该对象存储在一个数组中,然后对下一行执行相同的操作,和下一个,等等。最后,我应该有一个数组,其元素数量与我的 sql 表中的行数相同。谢谢。

【问题讨论】:

    标签: iphone objective-c database sqlite


    【解决方案1】:

    我的 SQL 生锈了,但我认为您可以使用 SELECT * FROM myTable 然后遍历结果。如果您不想从表中检索所有元素(例如由于内存问题),也可以使用LIMIT/OFFSET(1) 结构。

    (1) 请注意,根据您的用例,这可能会执行异常糟糕的操作。查看here了解更多信息...

    【讨论】:

      【解决方案2】:

      我将如何检索表中的所有信息?它是 非常重要的是我能够按顺序访问每一行 在表中。

      这不是 SQL 的工作方式。就 SQL 而言,行不会以特定顺序保存在表中。查询返回的行的顺序由查询中的 ORDER BY 子句确定,例如ORDER BY DateCreated 或 ORDER BY Price。

      但是 SQLite 有一个可以用于此目的的 rowid 虚拟列。它反映了插入行的顺序。除了它可能会随着真空而改变。如果你将它设为 INTEGER PRIMARY KEY,它应该保持不变。

                order by rowid
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多