如何在SQLITE中使用iphone iOS中的参数形成LIKE语句?
我有一个名为name的搜索字段。如果用户在搜索字段中键入“John”,我应该检查“Name”字段中的值“John”,并选择所有相应的字段值John'将是从searchBar.text获取的NSString,必须将其作为参数添加到查询中。我构造了一个这样的sql语句,但它从来都不起作用如何在SQLITE中使用iphone iOS中的参数形成LIKE语句?,ios,iphone,sqlite,parameters,sql-like,Ios,Iphone,Sqlite,Parameters,Sql Like,我有一个名为name的搜索字段。如果用户在搜索字段中键入“John”,我应该检查“Name”字段中的值“John”,并选择所有相应的字段值John'将是从searchBar.text获取的NSString,必须将其作为参数添加到查询中。我构造了一个这样的sql语句,但它从来都不起作用 NSString *query = [NSString stringWithFormat:@"select * from Employee where EmployeeName LIKE '%%@%'", sear
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];
什么都没用。诀窍是把百分比放进去。这很尴尬,但你可以这样做:
@"select * from Employee where EmployeeName LIKE '%%%@%%'"
%%是一个百分比,%@是替换字符串。我尝试了所有可能的方法,但精确的查询没有形成,最后以这种方式完成。这是一种迂回的方法,但效果很好
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:@"%'"];
这感觉代码有点冗长,但效果很好
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给出了这个精彩的答案。现在,我可以将四行代码替换为一行 你不需要逃避撇号。难道
\%
不需要做与%%
相同的事情,并且看起来少一点。。。%y?\%没有意义。它可能会为无法识别的转义字符生成警告。