2012-01-25 6 views
10

Я использую FMDB, который является оболочкой для SQLite. http://github.com/ccgus/fmdbВопрос FMDB не действует с LIKE

Вот мой запрос линия:

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

С помощью этого я могу получить обратно результат, если я печатаю в точном имени спортсмена. Но, я пытаюсь использовать LIKE, чтобы я мог искать по названию. Но, когда я вместо% вместо%? ... ничего не возвращается. И ошибок нет.

Кто-нибудь сталкивался с этим раньше и знал, что я делаю неправильно?

Спасибо всем!

+0

я хотел бы предложить, обеспечивая связь с FMDB для тех, кто не знаком с ним – bshirley

ответ

30

подстановочные символы (%) должны быть частью замещенной переменной, а не строка запроса:

FMResultSet *rs = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?", 
        [NSString stringWithFormat:@"%%%@%%", search_text]]; 
+0

Ах хорошо ... Большое спасибо. Сегодня я спал спящим, поэтому я предположил, что я пропустил что-то простое. =) – TheTC

+0

У меня с трудом получается, чтобы это сработало. Есть ли альтернативный синтаксис? У меня заканчиваются идеи. – Echilon

+0

А хорошо! Спасибо @omz. Я чрезвычайно новичок в mysql, поэтому не могли бы вы объяснить, что означает %%% @ %%? Я получаю% @ ... но каково значение других%? И?. Я предполагаю? является sql эквивалентом% @, но я все еще получаю это предупреждение от него: 'Аргумент данных, который не используется строкой формата' – crewshin

Смежные вопросы