0

我无法让 iOS 的 FMDB 包装器使用参数和 LIKE 子句。事实上,我很难让 LIKE 子句在带有 FMDB 的 SQLite 上工作。

我尝试使用 `Name LIKE '%dam%' 来匹配“Adam”,并且尝试将其指定为如下参数,但没有一个有效。

    [buffer appendString:@" Name LIKE '%dam%' "]; // no results

    [buffer appendString:@" Name LIKE ? "];
    [params addObject:[NSString stringWithFormat:@"%%%@%%", args.name]]; // no results

    [buffer appendString:@" Name LIKE '%' ? '%' "];
    [params addObject:[NSString stringWithFormat:@"%%%@%%", args.name]]; // no results

表中肯定有符合条件的项目,我只是不明白为什么 FMDB 没有返回它们。

4

2 回答 2

1

您还可以尝试使用常规 SQL 查询将数据提取到 FMResultset。这对我来说很好。

如果您稍后需要过滤数据,请使用 NSPredicate 效果很好。

NSPredicate文档

predicate =
[NSPredicate predicateWithFormat:@"authors.lastName CONTAINS %@", @"Mark" ];
filtered  = [bookshelf filteredArrayUsingPredicate:predicate];
于 2012-01-27T00:07:31.333 回答
0

一天也有这种头疼。试试这个

[buffer appendString:[NSString stringWithFormat:@" Name LIKE '%@dam%@' ",@"%",@"%"];
于 2012-03-13T09:05:37.343 回答