簡體   English   中英

ios FMDB SELECT NOT IN(?)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM