2012-03-28 7 views
0

Ich habe Zweifel, die Anzahl der Zeilen aus einer einzelnen Spalte abrufen. Wie kann ich nur 5 Reihen von einer einzelnen Spalte nach dem Zufallsprinzip in sqlite3 abrufen.Abrufen von Zeilen aus einer Spalte in sqlite

-(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; 

Bitte lassen Sie mich wissen, wie bekomme ich nur 5 Zeilen von einer Spalte in sqlite.

Vielen Dank im Voraus.

+0

auch - die Frage ist nicht klar, . Es erfasst nicht, warum das, was Sie tun, nicht funktioniert. Erhalten Sie einen Fehler? Sind die Ergebnisse anders als erwartet? Es ist nicht effektiv, dünn anzugeben, wonach Sie suchen, einen Stapel Code zu löschen und nicht zu verdecken, was falsch ist. – bryanmac

Antwort

0

Wenn Sie nur eine bestimmte Anzahl von Zeilen wollen, dann am Ende der SQL-Anweisung die Syntax verwenden:

LIMIT 5; 

zum Beispiel:

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