2012-01-25 15 views
10

私はFMDBを使用しています。これはSQLiteのラッパーです。FMDBクエリがLIKEで正しく動作しない

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

私は選手の正確な名前を入力する場合は、この私が戻って結果を得ることができます使用:http://github.com/ccgus/fmdb

は、ここに私のクエリ行です。しかし、私は名前を検索できるようにLIKEを使用しようとしています。しかし、%?%を単に追加するのではなく、 ...何も返されない。そしてエラーはありません。

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

ありがとうございました!

+0

私は – bshirley

答えて

30

ワイルドカード文字(%)が置換変数の一部ではなく、クエリ文字列でなければならない:

FMResultSet *rs = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?", 
        [NSString stringWithFormat:@"%%%@%%", search_text]]; 
+0

ああ[OK]を、それに慣れていない人のためFMDBへのリンクを提供することをお勧めしたいです...どうもありがとうございました。私は今日眠っているので、私は何かが簡単でないと思った。 =) – TheTC

+0

これを動作させるのが難しいです。別の構文がありますか?私はアイデアが不足しています。 – Echilon

+0

ああ素敵!ありがとうございました。私はmysqlにとって非常に新しいので、%%% @ %%が何を意味するのか気になりますか?私は%@を取得します...しかし、他の%の意義は何ですか?そしてその ?。私は仮定している? %@と同等のSQLですが、まだこの警告が表示されます: 'フォーマット文字列で使用されていないデータ引数' – crewshin