質問

私は私のプロジェクトでダイナミックLIKEステートメントを実行に問題があります。 このクエリは、魔法のように動作し、その名前に「T」ですべての項目を返します:

const char *sql = "select * from bbc_ipad_v1_node where name LIKE '%%t%%'";

私はこれをしようとすると、動的に私はエラーを取得しないが、ちょうど空の結果。値がnullであると思われます。私は、正しい値を出力し、文字列値を「S」に結合しようとします。

NSLog(@"bbc_ : search menu items from db based on: %@",s);
const char *sql = "select * from bbc_ipad_v1_node where name LIKE '%%?%%'";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
sqlite3_bind_text(statement, 1, [s UTF8String],-1,SQLITE_TRANSIENT);

どのように私の代わりに使用するのでは、この値をバインドする必要があります:

const char *sql = "select * from bbc_ipad_v1_node where name LIKE '%%?%%'";
役に立ちましたか?

解決

だけが<のhref = "http://www.innerexception.com/2008/10/using-like-statement-in-sqlite-3-from.html" のrel = "nofollowをnoreferrer" で素晴らしい説明を見つけました> http://www.innerexception.com/2008/10/using-like-statement-in-sqlite-3-from.html の

私は、次の行を変更します:

const char *sql = "select * from bbc_ipad_v1_node where name LIKE ?001";

NSString *searchInput = [NSString stringWithFormat:@"%@%%", s];
sqlite3_bind_text(statement, 1, [searchInput UTF8String],-1,SQLITE_TRANSIENT); 

他のヒント

あなたは実際には言うことができます。

const char *sql = "select * from bbc_ipad_v1_node where name LIKE '%t%'";

(シングル%s注)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top