그래, 아티스트라는 행의 모든 엔트리를 SQLite 데이터베이스에서 검색하고있다.하지만 같은 아티스트가 두 번 나타나기를 원하지 않는다. ...iOS : SQLite 질의/이전 엔트리에 대한 엔트리 확인
-(NSArray *)findAllArtists
{
NSMutableArray *returnArray = [[[NSMutableArray alloc] init] autorelease];
NSString *query = @"SELECT * FROM Painting";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)
== SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
char *uniqueIdChars = (char *) sqlite3_column_text(statement, 0);
char *artistChars = (char *) sqlite3_column_text(statement, 1);
NSString *uniqueId = [[NSString alloc] initWithUTF8String:uniqueIdChars];
NSString *artist = [[NSString alloc] initWithUTF8String:artistChars];
PaintingInfo *info = [[PaintingInfo alloc] initWithUniqueId:uniqueId artist:artist];
[returnArray addObject:info];
[uniqueId release];
[artist release];
}
sqlite3_finalize(statement);
}
sqlite3_close(database);
return returnArray;
}
그래서, 내가 무엇을 생각하고하는 한 가지 방법은 내가 이전 결과와 일치하는지 확인 returnArray에 결과를 추가하기 전에 내부 루프를 사용할 수 있다는 것입니다 ... 소리가 난다 상당히 단순하지만, 어떤 이유로 든 나는 일하려고하는 루프를 얻지 못했다. (내가 너무 오래 잠을 자지 않았다고 생각하여, 나는 실수로 맹목적으로 출연한다.) ... 다시, 나는 SQLite를 처음 접했으므로 그것에 대해 가난한 방법 일 수있다 ...
의견이 있으십니까?
DISTINCT 소리 나는 필요한 것처럼 같은 효과가 있었다 ... 그러나 그것은 나에게 약간의 문제를주고있다. 내가 회화에서 SELECT DISTINCT Artist를한다면, 나는 단 하나도 얻지 못한다. queId, 그래서 나는 오직 Artist를 검색하는 새로운 쿼리를 만들려고했다. 그래서 SELECT * FROM Painting에서 모든 아티스트를 얻는다. 그래서 DISTINCT를 추가하려고 했으므로 SELECT DISTINCT Artist FROM 그림을 그리지 만 NSString * 아티스트 라인에서 "Thread 1 : Program received signal SIGBART"가 발생하고 오류가 발생합니다. – user969043
좋아요, 이렇게 다른 방법이 있습니다 : @ "SELECT * FROM GROUP BY GROUP BY ARTIST"; - 작동하는 것 같습니다. DISTINCT를 작동시키고 싶지만, 앞으로 어떻게 할 것인지를 알고 있습니다. – user969043