0

次のような3つのテーブルを持つDBがあります

名前(PK_NameId、FK_ContactId、FK_FavId、長さ)

連絡先(PK_ContactId)

お気に入り(PK_FavId)

私のiPhoneアプリでは、名前を検索するためのさまざまなオプション(基準)があります.また、ユーザーは条件なしで検索ボタンをクリックして、すべての名前を取得できます。私はSQLiteが初めてで、クエリの実行にかかる時間が少ないコーディングを通じて、if-else条件のないすべてのケースを考慮して、名前を検索するためのクエリを作成したいと考えています。どの基準ユーザーが選択されているかを確認し、if-else 条件を適用するオプションは 1 つ知っていますが、あまり良くないので、クエリで処理したいと思います。誰かがそれを知っているなら、私を助けてください。

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)"];

この後、各選択タイプ(名前、連絡先、リスト)のnull値を確認し、元のクエリにクエリを追加しました。最後に、メインクエリのwhere句の後に開いた閉じ中括弧を使用してクエリを完了します。

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