Я не уверен, правда это или нет, но мне сказали, что FMDatabase работает лучше, если вы сделаете это
NSString *query = [NSString stringWithFormat:@"SELECT * FROM db where col=?"];
FMResultSet *rs = [theDatabase executeQuery:query, columnToLookFor];
vs
NSString *query = [NSString stringWithFormat:@"SELECT * FROM db where col='columnToLookFor'"];
FMResultSet *rs = [theDataBase executeQuery:query];
Итак, у нас есть поисковый запрос, который делает это:
NSString *query = [NSString stringWithFormat:@"SELECT Symbol, Category FROM Symbols where Category like \"%%%@%%\" or Symbol like \"%%%@%%\" group by Symbol, Category order by Category", searchtext, searchtext];
FMResultSet *rs = [theDatabase executeQuery:query];
Я пытаюсь изменить это на:
NSString *query = [NSString stringWithFormat:@"SELECT Symbol, Category FROM Symbols where Category like \"%%?%%\" or Symbol like \"%%?%%\" group by Symbol, Category order by Category"];
FMResultSet *rs = [theDatabase executeQuery:query, searchtext, searchtext];
Однако во второй форме с? Мой FMResultSet равен 0, и я не уверен, что я делаю неправильно в этомсценарий.Это ускорит наш поиск вообще?Или это скорее плохой дизайн базы данных для такой функциональности, которая занимает так много времени.