Objective c CoreData/SQLite确定字段是否以特定字符串结尾的最快方法
我正在使用SQLite支持的CoreData,并试图找到排除字段AirDate以-00-00结尾的行的最快方法 我注意到了Objective c CoreData/SQLite确定字段是否以特定字符串结尾的最快方法,objective-c,cocoa,sqlite,core-data,Objective C,Cocoa,Sqlite,Core Data,我正在使用SQLite支持的CoreData,并试图找到排除字段AirDate以-00-00结尾的行的最快方法 我注意到了 [NSPredicate predicateWithFormat:@"NOT AirDate CONTAINS %@", @"-00-00"] 比以前快多了 [NSPredicate predicateWithFormat:@"NOT AirDate LIKE %@", @"*-00-00"] 我还可以做其他优化吗?谢谢 您可以尝试使用正则表达式: [NSPredica
[NSPredicate predicateWithFormat:@"NOT AirDate CONTAINS %@", @"-00-00"]
比以前快多了
[NSPredicate predicateWithFormat:@"NOT AirDate LIKE %@", @"*-00-00"]
我还可以做其他优化吗?谢谢 您可以尝试使用正则表达式:
[NSPredicate predicateWithFormat:@"NOT AirDate MATCHES %@", @"-00-00$"]
但是您可能应该使用NSDate,而不是将日期存储为字符串。使用日期比较而不是匹配字符串进行搜索应该会更快
[NSPredicate predicateWithFormat:@"NOT AirDate CONTAINS %@", @"-00-00"]
在我的测试中是最快的,所以我选择了这个