【发布时间】:2016-11-05 17:26:52
【问题描述】:
我一直在尝试在 Android 应用程序的搜索中使用通配符,并不断遇到错误。
我正在使用以下字符串对我的应用程序执行搜索:
Cursor c_name = b.query("namedrxns", new String[] { "_id", "name" },
"name LIKE %?%", new String[] { query }, null, null, null);
当我使用 name LIKE %?% 或 name=%?% 时,我得到一个 "near "%": syntax error: , while compile: SELECT _id, name FROM namedrxns WHERE name=%?%" 错误。
但使用 name LIKE '%?%' 或 name='%?%' 我得到的是“绑定或列索引超出范围:句柄 0x40cb70”
谁能告诉我我做错了什么?
谢谢!
【问题讨论】:
-
如何将通配符添加到传入的变量中,而不是在查询中?
-
完美运行,谢谢!这对我来说似乎有点傻,但没关系。如果您将其作为答案,我很乐意为您打勾:)
-
听起来不错。绑定的字符串参数基本上会有引号和东西,所以你最终可能会得到类似 name = %'David'% 的东西,这是无效的 SQL。我的 SQL 知识并没有完全达到标准,所以这里完成的工作比我能说的要多一些,但这应该让你知道为什么必须按照 OMG ponies 的描述来完成。