通配符在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”

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

谢谢!

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); 

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

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

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

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