[英]ios FMDB SELECT NOT IN (?)
我想檢查一個id列表是否在數據庫中。 這是我的代碼...
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];
NSString *string = [array componentsJoinedByString:@","];
FMResultSet * rs = [self.db executeQuery:@"SELECT id FROM FriendList WHERE id NOT IN (?)",string];
這是行不通的。 僅當數組只有一個數字時才有效。
有人知道如何使用FMDB進行SELECT NOT IN嗎?
謝謝!
您在這里幾乎不需要修改。
請遵循以下代碼。
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];
NSString *components = [array componentsJoinedByString:@", "];
NSMutableString *valueString = [NSMutableString new];
NSMutableString *fieldString = [NSMutableString new];
[fieldString appendString:@"SELECT id FROM FriendList WHERE id NOT IN ("];
for (NSString *fielValue in array) {
[fieldString appendString:@"?,"];
[valueString appendString:fielValue];
}
[fieldString replaceCharactersInRange:NSMakeRange([fieldString length] - 1, 1) withString:@")"];
NSString *normalString = [NSString stringWithString:fieldString];
fieldString = nil;
FMResultSet * rs = [self.db executeQuery:@"%@", normalString, components];
編輯:
從您在注釋中提供給我的信息,我確實發現,當您從數組組件中提供多個項目時, sqlite
無法編譯字符串文字。 我修改答案仍然是從您的末端來測試它是否正常工作? 發表評論以供確認。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.