Okay, so I’m doing a search in a SQLite database for all entries in the row called Artists… But I don’t want the same artist to appear twice…
-(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;
}
So, what I’m thinking is that one way could be to use a loop inside before adding the result to the returnArray, where I check if it matches a previous result… It sounds fairly simply, but for some reason, I haven’t gotten the loops I’ve tried to work (think I might have been working too long without sleep, so I’m starring blindly at my errors)…
Then again, I’m fairly new to SQLite, so it might be a poor way of going about it…
Any suggestions?
SELECT * FROM Painting GROUP BY Artist had the same effect