Iphone 如何在表视图中显示数据库中存储的最后10个数据?
我有一个存储源地址、目标地址和类别的数据库。现在我只想在表视图中显示存储在该数据库中的最后10个数据。我正在使用此代码从数据库检索数据Iphone 如何在表视图中显示数据库中存储的最后10个数据?,iphone,database,uitableview,nsdata,Iphone,Database,Uitableview,Nsdata,我有一个存储源地址、目标地址和类别的数据库。现在我只想在表视图中显示存储在该数据库中的最后10个数据。我正在使用此代码从数据库检索数据 -(void) openDB { listOfStudents = [[NSMutableArray alloc] init]; if(sqlite3_open([databasePath UTF8String], &db) == SQLITE_OK) { const char *sql = "select * from Places";
-(void) openDB {
listOfStudents = [[NSMutableArray alloc] init];
if(sqlite3_open([databasePath UTF8String], &db) == SQLITE_OK) {
const char *sql = "select * from Places";
sqlite3_stmt *stmt;
int rtnVal = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if( rtnVal == SQLITE_OK) {
while (sqlite3_step(stmt) == SQLITE_ROW) {
Places_data *pd_object = [[[Places_data alloc] init] autorelease];
pd_object.place_id = sqlite3_column_int(stmt, 0);
pd_object.start_add = [NSString stringWithUTF8String:(char *) sqlite3_column_text(stmt, 1)];
pd_object.end_add = [NSString stringWithUTF8String:(char *) sqlite3_column_text(stmt, 2)];
pd_object.strcategroy = [NSString stringWithUTF8String:(char *) sqlite3_column_text(stmt, 3)];
[self.listOfStudents addObject:pd_object];
}
}
sqlite3_finalize(stmt);
}
sqlite3_close(db);
}
现在,我在上面代码中所做的更改表明,它在表视图中只显示最后10条结果。您可以使用以下查询,该查询只获取最后10条记录
const char *sql = "SELECT * FROM Places order by rowid desc limit 10";
这取决于“最后”是什么意思?如果您有任何autoincrement id colunm,那么您可能指的是“last inserted”或具有最大id的。在您的情况下,如果您使用的是sqlite,您可以使用如下内容:
SELECT * FROM Places ORDER BY Id DESC LIMIT 10;
其中,Id
是您的自动递增列名。该语句将从表Places
中选择所有条目,然后按Id
降序排列,只使用前10个结果
在其他一些数据库中,您也可以尝试:
SELECT TOP 10 * FROM Places ORDER BY Id DESC;
但是请注意,并非所有数据库系统都支持TOP子句
希望它能解决你的问题