SQLite数据库(iOS)中的行顺序

时间:2012-08-05 14:34:29

标签: ios sqlite indexing row

我有一个带有一个名为'connection'的表的数据库,为了简单起见,假设我只有一个名为'rowName'的列。现在假设我添加了一行rowName = a;现在我添加一行rowName = q,最后我添加一行rowName = w(字母完全随机)。现在,我通过声明激怒了结果:

    NSString * queryStatements = [NSString stringWithFormat:@"SELECT rowName,  FROM tableName"];

并使用代码:

NSMutableArray * rows = [[NSMutableArray alloc] init]; //create a new array
sqlite3_stmt * statement;
    if(sqlite3_prepare_v2(databaseHandle, [queryStatements UTF8String], -1, &statement, NULL) == SQLITE_OK){
        while (sqlite3_step(statement) == SQLITE_ROW){
           NSString * rowName = [NSString stringWithUTF8String : (char*) sqlite_column_text(statement, 1)];
[rows addObject : connection];
} sqlite3_finalize(statement_;
}

在数组行中,索引0处的对象是rowName = a,索引1是rowName = q,还是索引2 rowName = w?还是随意的?有没有办法让它不随机?

另外,如果我删除一行,它会对其他行顺序产生影响吗?

1 个答案:

答案 0 :(得分:3)

永远不要依赖数据库中的排序顺序。如果需要,请务必指定一个。

SELECT rowName FROM tableName order by rowName

为您提供按rowName排序的数据。如果您需要不同的订单,则需要另一列。

如果需要,您还可以对NSArray进行排序。

您在寻找什么样的订单?