0

私は iPad プロジェクトを行っています。UI には 3 つのテーブルがあります。各テーブルの行を選択した場合。Sqlite クエリは、テーブルから値を取得してクエリを実行します。以下の私のクエリを見つけてください。

NSString * str3=tableFou.string4;
    NSString * str4=tableFiv.string5;
    NSString * str2=tablethr.string3;

    sqlite3 *database;
    favorite=[[NSMutableArray alloc]init];
    if(sqlite3_open([databasePath UTF8String], &database)== SQLITE_OK){
        NSString *sql=[NSString stringWithFormat:@"Create view prizeview as SELECT country.name,item_country.id,text.text,substr(text,1,2) FROM country,item_country,prize,item_prize,gender,item_gender,text WHERE country.name = '%@' AND text.item = item_country.item AND country.id = item_country.id AND prize.name = '%@' and text.item=item_prize.item and prize.id = item_prize.id and gender.name = '%@' and text.item=item_gender.item and gender.id = item_gender.id ",str3,str4,str2];
        const char *sqlStatement = [sql UTF8String];;

問題は、すべてのテーブルのみを選択するとクエリが実行されることです..しかし、テーブルを1つでも選択すると結果が必要です。どうやってやるの?

4

2 に答える 2

0

if条件でwithとconditionを使用してみて、すべてのstrをif条件のみで渡します。

このようなif条件を使用します。

if(([propertyTypeLabel.text length]==0) || ([cityLabel.text length]==0 ) ||( [locationLabel.text length]==0 )|| ([priceLabel.text length] ==0)||([postedLabel.text length]==0))

このように、テキストのいずれかがゼロ条件trueである場合、テーブルセルのantがクエリ実行をタップした場合にも使用します。

于 2012-05-07T07:15:32.063 に答える
0

フィールドが実際に空でない限り、空のフィールドを検索することはできません。F.ex。検索すれば

select * from mytable where username = "";

あなたはそれを見つけることはできませんが、フィールドが空であっても、結果が何であっても問題ない場合は、 = の代わりに like を使用する必要があります

select * from mytable where username like "%";

さらに良いことに、次のようにクエリを作成することもできます。たとえば、ユーザー名、名、姓の 3 つのフィールドを検索するとします。以下のコードにはさらにいくつかの if と but が必要ですが、これを機能させて、要件を満たす場合にのみパラメーターを where に追加できるはずです。

NSMutableString *query = [[NSMutableString alloc] init];
[query appendString:@"select * from table where "];
if (username.text.lenghth >1) [query appendString:[NSString stringWithFormat:@"username = '%@'"]];
if (firstname.text.length >1) [query appendString:[NSString stringWithFormat:@"&& firstname = '%@'"]];
if (lastname.text.length >1) [query appendString:[NSString stringWithFormat:@"&& lastname = '%@'"]];

お役に立てれば

于 2012-05-07T07:36:19.073 に答える