2013-02-16 2 views
0

У меня возникли проблемы с получением этой инструкции sql для работы. Может ли кто-нибудь быть добрым и помочь мне?Невозможно использовать функцию LIKE в android

public Cursor getContactMatches(String query, String[] columns) 
{ 
    String selection = COL_NAME + " LIKE " + "'%" + "%'"; <---- right here 
    Log.d("selection", selection); 
    String[] selectionArgs = new String[] {query+"*"}; 

    return query(selection, selectionArgs, columns); 
} 
+0

'select * from your_table where some_column like ('% foobar%')' Я думаю, что вам не хватает '(', ')' и 'foobar'. Выполнение 'select * from your_table, где some_column LIKE '%%'' просто не имеет никакого смысла. –

+0

Так что foobar - это не какая-то случайная вещь? вы на самом деле положили это в утверждение? –

+0

Нет, вы не указываете, какое значение вы сравниваете: –

ответ

1

Вы не переходящая в значении для сравнения

String selection = COL_NAME + " LIKE " + "'%" + yourvalue + "%'"; <---- right here 
+0

, так что бы использовать параметр запроса? –

+0

Нет, вы передадите значение, которое вы пытаетесь найти. –

0

Если вы хотите использовать аргументы выбора, то ваша строка выбора не должно быть никаких кавычек или символов%. Строка запроса будет правильно sql экранирована автоматически, если вы не запустили необработанный SQL-запрос на свой db. Что-то вроде этого снизу должно выполнить.

String selection = COL_NAME + " LIKE ?"; 
String[] selectionArgs = new String[] {query+"*"}; 
Смежные вопросы