在dbaccess中使用空参数获取查询

Fetch query with null parameter in dbaccess

如果我有两个 dbobject,例如:

@interface Member : DBObject

@property (strong) NSString* firstname;
@property (strong) NSString* lastName;
@property (strong) Group* group;

@end

@interface Group : DBObject

@property (strong) NSString* groupName;
@property (strong) NSString* adminName;

- (DBResultSet*)members;

@end

在成员对象中,我可以检索与组相关的成员,但是在成员对象中,还有很多不包含组对象的对象。那我要怎么取呢?

我试过这个,但给出的是空的 DBResultSet。

[[[Member query] whereWithFormat:@"group == %@",NULL] fetch];

副词感谢

是的,在 SQLite 中您不能等同于 NULL,因此您使用稍微不同的表达式来处理 NULL 对象。您需要使用 IS NULLIS NOT NULL.

简而言之,您上面的查询将变为:

[[[Member query] where:@"group IS NULL"] fetch];

有时它确实会弄乱使用参数构建查询,但在这种情况下,您只需要构建看起来有点不同的查询即可。

例如:

[[[Member query] whereWithFormat:@"(group == %@ OR group IS NULL)",@(123)] fetch];

谢谢 广告