Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite数据库(iOS)中的行顺序_Ios_Sqlite_Indexing_Row - Fatal编程技术网

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

SQLite数据库(iOS)中的行顺序,ios,sqlite,indexing,row,Ios,Sqlite,Indexing,Row,我有一个数据库,它有一个名为“connection”的表,为了简单起见,假设我只有一个名为“rowName”的列。现在让我们假设我添加了一行rowName=a;现在我添加一行rowName=q,最后添加一行rowName=w(字母完全是随机的)。现在,我用这句话激怒了结果: NSString * queryStatements = [NSString stringWithFormat:@"SELECT rowName, FROM tableName"]; 并使用代码: NSMutab

我有一个数据库,它有一个名为“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?还是随机的?有没有办法使它不是随机的


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

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

SELECT rowName FROM tableName order by rowName
提供按行名称排序的数据。如果需要不同的顺序,则需要另一列

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


您要的排序顺序是什么?

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

SELECT rowName FROM tableName order by rowName
提供按行名称排序的数据。如果需要不同的顺序,则需要另一列

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


您要的排序顺序是什么?

我可以在order by参数中输入日期行吗?可以。从技术上讲,SQLite没有日期,但假设您在填充数据库时进行了适当的转换,您应该会没事。如果您在应用程序中依赖SQLite,您可能希望通过Gus Muller在github上查看FMDB。它为所有这些sqlite c函数提供了一个很好的objective c包装器。顺便说一句——完全同意@terry wilcox关于“建议排序”的观点——尽可能避免使用列索引。我可以在“按顺序”参数中输入日期行吗?可以。从技术上讲,SQLite没有日期,但假设您在填充数据库时进行了适当的转换,您应该会没事。如果您在应用程序中依赖SQLite,您可能希望通过Gus Muller在github上查看FMDB。它为所有这些sqlite c函数提供了一个很好的objective c包装器。顺便说一句——完全同意@terry wilcox的“建议排序”——尽可能避免使用列索引。