通配符在SQLite中不起作用

我一直试图在android应用程序的search中使用通配符,并不断遇到错误。

我使用下面的string在我的应用程序上执行search:

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

当我使用name LIKE %?%name=%?%我得到一个“近”%“:语法错误:编译时:SELECT _id,名称FROM namedrxns WHERE名称=%?%”错误。

name LIKE '%?%'name='%?%'我改为“绑定或列索引超出范围:句柄0x40cb70”

有人能告诉我我做错了什么吗?

谢谢!

  • Android:批量插入,当InsertHelper弃用
  • SQLite的exception:没有这样的表错误
  • 随机exceptionandroid.database.sqlite.SQLiteException:无法打开数据库文件
  • GreenDAO如何获得最高logging?
  • Android Sqlite单身数据库文件stream更新失败
  • 我是否需要带有光标加载器的内容提供者?
  • Sqlite数据库安全性
  • 获取SQLite数据库的下一个AUTO_INCREMENT值
  • %附加到query参数。

    IE:

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

    就像托马斯·穆勒(Thomas Mueller)已经说过的那样,请注意%_内的值仍然是通配符。

    以下应该工作(但我没有用SQLitetesting):

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

    请注意,值中的“%”和“_”仍然是通配符。