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的精彩回答。现在,我可以将我的四行代码替换为单行..

于 2012-04-18T01:19:23.620 回答