14

我正在使用 FMDB,它是 SQLite 的包装器。http://github.com/ccgus/fmdb

这是我的查询行:

FMResultSet *athlete = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?", search_text];

使用它,如果我输入运动员的确切姓名,我可以得到一个结果。但是,我正在尝试使用 LIKE 来搜索名称。但是,当我添加 %?% 而不是 ? ...没有任何回报。并且没有错误。

有没有人遇到过这个并且知道我做错了什么?

谢谢大家!

4

1 回答 1

35

通配符 ( %) 必须是替换变量的一部分,而不是查询字符串:

FMResultSet *rs = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?",
                  [NSString stringWithFormat:@"%%%@%%", search_text]];
于 2012-01-25T19:24:01.010 回答