14

SQLite のラッパーである FMDB を使用しています。http://github.com/ccgus/fmdb

ここに私のクエリ行があります:

FMResultSet *athlete = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?", search_text];

これを使用して、アスリートの正確な名前を入力すると、結果が返されます。しかし、名前を検索できるように、LIKE を使用しようとしています。しかし、単に ? の代わりに %?% を追加すると、... 何も返されません。そして、エラーはありません。

誰かが以前にこれに遭遇し、私が間違っていることを知っていますか?

みんな、ありがとう!

4

1 に答える 1

35

ワイルドカード文字 ( %) は、クエリ文字列ではなく、置換変数の一部である必要があります。

FMResultSet *rs = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?",
                  [NSString stringWithFormat:@"%%%@%%", search_text]];
于 2012-01-25T19:24:01.010 に答える