当前位置:首页 > 数据库 > SQlite

android – Wildcard在SQLite中不起作用

我一直试图在Android应用程序的搜索中使用通配符,并继续遇到错误.

我正在使用下面的字符串对我的应用程序执行搜索:

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

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

但是名字LIKE’%?%’或name =’%?%’我改为“绑定或列索引超出范围:handle 0x40cb70”

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

谢谢!

解决方法:

将%附加到查询参数.

即:

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

就像Thomas Mueller已经说过的那样,请注意值中的%和_仍然可以作为通配符使用.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!