2012-01-25 27 views
10

我正在使用FMDB,它是SQLite的包裝。 http://github.com/ccgus/fmdbFMDB查詢不正確與LIKE

這裏是我的查詢行:

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

使用這個我可以得到一個結果回來,如果我在運動員的確切名稱類型。但是,我試圖使用LIKE,所以我可以搜索名稱。但是,當我添加%?%而不僅僅是? ......沒有任何回報。沒有錯誤。

有沒有人遇到過這個,知道我做錯了什麼?

謝謝大家!

+0

我建議對於那些不熟悉它 – bshirley

回答

30

通配符(%)必須是取代變量的一部分,而不是查詢字符串:

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

啊確定提供一個鏈接到FMDB ...非常感謝你。我今天半睡着了,所以我以爲我錯過了一些簡單的東西。 =) – TheTC

+0

我很難得到這個工作。有沒有其他語法?我正在用盡想法。 – Echilon

+0

好啊!謝謝@omz。我對MySQL非常陌生,所以你會介意解釋%%% @ %%的含義嗎?我得到%@ ...但其他%的重要性是什麼?而且?我假設?是相當於%@的SQL,但我仍然從中得到這個警告:'數據參數未被格式字符串使用' – crewshin