Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQLITE中使用iphone iOS中的参数形成LIKE语句?_Ios_Iphone_Sqlite_Parameters_Sql Like - Fatal编程技术网

如何在SQLITE中使用iphone iOS中的参数形成LIKE语句?

如何在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

我有一个名为name的搜索字段。如果用户在搜索字段中键入“John”,我应该检查“Name”字段中的值“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];

什么都没用。

诀窍是把百分比放进去。这很尴尬,但你可以这样做:

@"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?\%没有意义。它可能会为无法识别的转义字符生成警告。