Подстановочный знак, не работающий в SQLite

Я пытаюсь использовать подстановочные знаки в поиске в приложении для Android и постоянно сталкиваюсь с ошибками.

Я выполняю поиск в своем приложении, используя следующую строку:

Cursor c_name = b.query("namedrxns", new String[] { "_id", "name" }, "name LIKE %?%", new String[] { query }, null, null, null); 

Когда я использую name LIKE %?% Или name=%?% Я получаю «почти»% »: синтаксическая ошибка: при компиляции: SELECT _id, name FROM namedrxns WHERE name =%?%" Error.

Но с name LIKE '%?%' Или name='%?%' Вместо этого я получаю вместо этого индекс привязки или столбца вне диапазона: handle 0x40cb70 "

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?

Благодаря!

Solutions Collecting From Web of "Подстановочный знак, не работающий в SQLite"

Добавьте % к параметру query .

IE:

 Cursor c_name = b.query("namedrxns", new String[] { "_id", "name" }, "name LIKE ?", new String[] { "%"+query+"%" }, null, null, null); 

Как уже сказал Томас Мюллер, обратите внимание, что % и _ внутри значения все еще работают в качестве подстановочных знаков.

Следующее должно работать (но я не тестировал его с помощью SQLite):

 "name LIKE '%' || ? || '%'" 

Обратите внимание, что «%» и «_» в пределах значения по-прежнему работают в качестве подстановочных знаков.