试图在iPhone中的sqlite3中执行LIKE子句

时间:2013-11-15 13:48:00

标签: iphone objective-c sqlite ios7

我试图在我的sqlite3查询中执行LIKE子句,即

sqlStatement = [NSString stringWithFormate;@"select * from table_name where column_name like '%"+%@+"%'",title];

此处标题是NSString类型。具有6 Kt或10 Kt或14 Kt或18 Kt

的值

column_name 中,我在单个语句中有这样的值( 6 Kt,10 Kt,14 Kt

 |------------------------|
 |     column_name        |
 |------------------------|
 |   6 Kt, 10 Kt, 14 Kt   |
 | --------------------   |
 |   10 Kt, 18 Kt, 22 Kt  |
 | ---------------------  |
 |   6 Kt, 10 Kt, 24 Kt   |
 | ---------------------  |
 |   6 Kt, 14 Kt, 22 Kt   |
 | ---------------------- |
 |   6 Kt, 22 Kt, 24 Kt   | 
 | -----------------------|

我再试一次这样的查询:

sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where karat like '%@%%'",title];

,其值为title = 6 Kt。

IT提供以6 Kt

开头的行的

但当我尝试使用 18 Kt或22 Kt 作为标题

的值时

它没有给我任何结果

我认为只检查此列中某行的第一个值。

请帮助我,谢谢

1 个答案:

答案 0 :(得分:0)

您必须在查询前添加%。此外,您必须使用以下查询:

sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where ', '||karat like '%% %@%%'",title];

匹配列表中间,开头或结尾的项目,匹配6但不是16。