4

たとえば、name という名前の検索フィールドがあるとします。ユーザーが検索フィールドに「John」と入力した場合、「名前」フィールドで値「John」を確認し、対応するすべてのフィールド値を選択する必要があります。'John' は、searchBar.text から取得される NSString であり、パラメーターとしてクエリに追加する必要があります。このようなSQLステートメントを構築しましたが、うまくいきませんでした。

NSString *query = [NSString stringWithFormat:@"select * from Employee where EmployeeName LIKE '%%@%'", searchText.text];
const char *sqlStatement = [query UTF8String];

これもやってみた

NSString *query = [NSString stringWithFormat:@"select * from Employee where EmployeeName LIKE %'%@'%", searchText.text];
const char *sqlStatement = [query UTF8String];

何も機能しませんでした。

4

2 に答える 2

28

秘訣は、そこにパーセントを入れることです。面倒ですが、次のようにできます。

@"select * from Employee where EmployeeName LIKE '%%%@%%'"

%% はパーセント、%@ は置換文字列です。

于 2012-04-14T00:18:04.177 に答える
1

考えられるすべての方法を試しましたが、正確なクエリが形成されず、最終的にこの方法になりました。その回りくどい方法ですが、うまくいきます。

NSString *query = [NSString stringWithFormat:@"select * from Employee where EmployeeName LIKE"];
query = [query stringByAppendingString:@" '%"];
NSString  *addParameter = [NSString stringWithFormat:@"%@",searchText];
query = [query stringByAppendingString:addParameter];
query = [query stringByAppendingString:@"%'"];

これは少し長いコードのように感じますが、問題なく動作します。

そして、この素晴らしい答えをありがとう@danh 。これで、コードの 4 行を 1 行に置き換えることができます..

于 2012-04-18T01:19:23.620 に答える