我正在尝试在我的sqlite3查询中执行suct子句。

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

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];
.

具有标题值= 6 kt。

它给出了从6 kt

开始的行的值 但是,当我尝试使用<强> 18 kt或22 kt 作为 title

的值

它不会给我任何结果

我认为它只是检查本列中行的第一个值。

请帮助我,谢谢

有帮助吗?

解决方案

您必须在查询之前添加一个生成的%。此外,您必须使用以下查询:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top