0

iOS 用の FMDB ラッパーをパラメーターと LIKE 句で動作させるのに問題があります。実際、FMDB を使用する SQLite で LIKE 句をまったく機能させるのに問題があります。

「Adam」に一致するように `Name LIKE '%dam%' を使用してみました。また、以下のようにパラメーターとして指定しようとしましたが、どれも機能しません。

    [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 に答える