0

我有一个有 3 个表的数据库

名称(PK_NameId,FK_ContactId,FK_FavId,长度)

联系人(PK_ContactId)

收藏夹(PK_FavId)

在我的 iPhone 应用程序中,有各种选项(标准)来搜索名称,因为用户可以选择多个名称,用户可以选择多个联系人,用户可以选择多个收藏夹,用户还可以选择长度,如 0-10、10-20 等。用户也可以在没有任何条件的情况下单击搜索按钮来获取所有名称。我是 SQLite 的新手,想要创建一个用于搜索名称的查询,方法是通过编码考虑所有没有 if-else 条件的情况,这需要更少的时间来执行查询。我知道一个选项来检查选择了哪些标准用户并应用 if-else 条件,但它不太好,所以我想通过查询来处理它。如果有人知道,请帮助我。

4

1 回答 1

0

我使用以下方式得到了解决方案 -

NSString *strQuery;    
strQuery = [NSString stringWithFormat:@"SELECT N.PK_NameId FROM Name N inner join Contact C on C.PK_ContactId = N.FK_ContactId inner join Favourites F on F.PK_FavId = N.FK_FavId where ((1)"];

在此之后,我检查了每个选择类型(姓名、联系人、列表)的空值并将查询附加到原始查询。最后使用我在主查询的 where 子句之后打开的右大括号完成查询。

strQuery = [NSString stringWithFormat:@"%@)", strQuery];
于 2013-01-28T14:06:29.213 回答