我试图在我的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 作为标题
的值时它没有给我任何结果
我认为只检查此列中某行的第一个值。
请帮助我,谢谢
答案 0 :(得分:0)
您必须在查询前添加%
。此外,您必须使用以下查询:
sqlStatement = [NSString stringWithFormat:@"select * from jewelryInfo where ', '||karat like '%% %@%%'",title];
匹配列表中间,开头或结尾的项目,匹配6但不是16。