在iPhone中尝试在SQLite3中执行诸如子句
-
20-12-2019 - |
题
我正在尝试在我的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。
不隶属于 StackOverflow