从sqlite中的列检索行

时间:2012-03-28 10:46:07

标签: iphone sqlite

我怀疑从一列中检索行数。那么如何在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行。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您只想要一定数量的行,那么在SQL语句的末尾使用语法:

LIMIT 5;

例如:

SELECT ColA, ColB, ColC, ColD, ColE
FROM MyTable
LIMIT 5;