在我的应用程序中,我的表名是dataset_master。并且表的字段名称是dataset_id,我想获得这个字段的最大值,所以很简单,我用代码在 Query 之后触发。
-(NSString *) getLastRowFromDataset_masterTableByProjectID:(NSString *) project_id
{
NSString *dataset_id = @"";
sqlite3_stmt *statement = NULL;
NSString *query = [NSString stringWithFormat:@"SELECT MAX(dataset_id) FROM dataset_master where project_id = ?;"];
if (sqlite3_prepare_v2(_database, [query UTF8String], -1, &statement, nil) == SQLITE_OK)
{
sqlite3_bind_text(statement, 1, [project_id UTF8String], -1, SQLITE_TRANSIENT);
while (sqlite3_step(statement) == SQLITE_ROW)
{
char *datasetIDChars = (char *) sqlite3_column_text(statement, 0);
if(datasetIDChars != NULL)
dataset_id = [[NSString alloc] initWithUTF8String:datasetIDChars];
}
}
return dataset_id;
}
这project_id
对我来说是必需的,因为我需要dataset_id
基于project_id
.
一切都很好,但是当dataset_id
10或更多然后 10然后我无法获得正确的最大值,我的意思是每次我得到9。
我不知道什么是真正的问题,我简单地触发查询,但我无法得到正确的答案。