我怀疑从一列中检索行数。那么如何在sqlite3中随机检索单个列中的5行。
-(Question1*)readData1{
sqlite3_stmt *statement1;
int rowid1;
rowid1=[self getRowId1];
tempQuery=[@"select * from iapp_tbl_questions where id= " stringByAppendingString:[NSString stringWithFormat:@"%d",rowid1]];
const char *query2=[tempQuery UTF8String];
if (sqlite3_prepare_v2(database,query2,-1,&statement1,NULL)==SQLITE_OK) {
while (sqlite3_step(statement1)==SQLITE_ROW) {
vt=[[[Question1 alloc]init]autorelease];
vt.question=[NSString stringWithUTF8String:(char *)sqlite3_column_text(statement1,3)];
NSLog(@"arr1 is %@",[vt.question description]);
}
}
return vt;
-(int)getRowId1{
sqlite3_stmt *statement1;
static int randomRowNum1;
BOOL isAvalible =NO;
if(table==1){
query="SELECT * FROM 'iapp_tbl_questions' WHERE casenum = 16 order by RANDOM() Limit 1";
}
else if(table==2){
query="SELECT * FROM 'iapp_tbl_questions' WHERE casenum = 15 order by RANDOM() Limit 1";
}
if (sqlite3_prepare_v2(database,query,-1,&statement1,NULL)==SQLITE_OK) {
while (sqlite3_step(statement1)==SQLITE_ROW) {
randomRowNum1=sqlite3_column_int(statement1,0);
break;
}
}
for (int i=0;i<idStoreArray1.count;i++){
NSString *rowidString1 =[idStoreArray1 objectAtIndex:i];
if(rowidString1.intValue==randomRowNum1) {
NSLog(@"rowidString1%@", idStoreArray1.count);
//isAvalible=YES;
//break;
}
}
if (!isAvalible) {
[idStoreArray1 addObject:[NSString stringWithFormat:@"%d",randomRowNum1]];
NSLog(@"array count1----%@",idStoreArray1);
NSLog(@"%d",idStoreArray1.count);
return randomRowNum1;
}
else if(idStoreArray1.count < 6000){
[self getRowId1];
return randomRowNum1;
}
return 0;
请告诉我如何从sqlite中的列中仅获取5行。
提前致谢。
答案 0 :(得分:0)
如果您只想要一定数量的行,那么在SQL语句的末尾使用语法:
LIMIT 5;
例如:
SELECT ColA, ColB, ColC, ColD, ColE
FROM MyTable
LIMIT 5;