在带有objective-c的SQL查询中使用%-sign(百分比符号)

Joe*_*jah 3 sql sqlite iphone objective-c

所以,正是标题所说的.我想使用这样的查询:

NSString *querySQL = [NSString stringWithFormat:@"SELECT COUNT (*) FROM Devices WHERE Location LIKE '%@%'", name];
Run Code Online (Sandbox Code Playgroud)

它基本上要求的是,例如:SELECT COUNT (*) FROM Devices WHERE Location LIKE 'N%'.然后我想找到构建N的所有计算机,包括所有的子位置(如N33).

问题是:如何在查询中插入%-sign?目前,它只显示'N'...

Meh*_*ari 14

使用两个%符号来逃避%:

NSString *querySQL = [NSString stringWithFormat:
     @"SELECT COUNT (*) FROM Devices WHERE Location LIKE '%@%%'", name];
Run Code Online (Sandbox Code Playgroud)

(当然,您需要清理输入,或者首先使用参数化查询,以防止SQL注入攻击)

  • @Joetjah:它将%解析为格式说明符.试试`NSLog(@"%@",querySql);` (2认同)