2012-01-25 19 views
10

Używam FMDB, który jest opakowaniem dla SQLite. http://github.com/ccgus/fmdbZapytanie FMDB nie działa poprawnie z LIKE

Oto moja linia zapytania:

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

Korzystanie może uzyskać wynik z powrotem gdybym wpisać dokładną nazwę sportowca. Ale próbuję użyć LIKE, aby móc wyszukać nazwę. Ale kiedy dodaję%?% Zamiast tylko? ... nic nie wraca. I nie ma błędów.

Czy ktoś wpadł na to wcześniej i wiedział, co robię źle?

Dziękuję wszystkim!

+0

chciałbym sugerować, zapewniając link do FMDB dla osób niezaznajomionych z nim – bshirley

Odpowiedz

30

Znaki wieloznaczne (%) muszą być częścią zmiennej podstawiona, a nie ciąg zapytania:

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

Ah ok ... Dziękuję Ci bardzo. Dziś spałem 1/2, więc założyłem, że brakuje mi czegoś prostego. =) – TheTC

+0

Mam trudności z uruchomieniem tego. Czy istnieje alternatywna składnia? Kończy mi się pomysł. – Echilon

+0

Ah nice !! Dzięki @omz. Jestem zupełnie nowy w mysql, więc czy mógłbyś wyjaśnić, co oznacza %%% @ %%? Otrzymuję% @ ... ale jakie jest znaczenie innych%? A? Zakładam? jest równoważnikiem sql do% @, ale wciąż otrzymuję od niego to ostrzeżenie: 'Argument danych nie jest używany przez ciąg formatu' – crewshin