我希望能够在我的现有Android SQLite数据库上执行以下操作,该数据库的结构如下所示:
列:id --- rule --- path --- someotherdata
现在,规则可能包含文件名的一部分(例如仅仅是“mypicture”这样的一些琐碎的内容,也可以是文件类型,如“jpg”)。我想编写一个查询,以获取包含输入字符串部分的所有规则。我已经尝试了以下示例: String value =“somepicturefilename.jpg”
我的语句:
现在用户输入一个文件名,假设为“poniesAsUnicorns.jpg”。因此,“poniesAsUnicorns.jpg”是我的输入字符串,查询应匹配id#1和id#2,因为“poniesAsUnicorns.jpg”包含“jpg”和“ponies”。
希望这样能够澄清我的意思。
编辑: 以下是我尝试过的内容:
但会抛出“未找到此操作”的异常。
现在,规则可能包含文件名的一部分(例如仅仅是“mypicture”这样的一些琐碎的内容,也可以是文件类型,如“jpg”)。我想编写一个查询,以获取包含输入字符串部分的所有规则。我已经尝试了以下示例: String value =“somepicturefilename.jpg”
我的语句:
"SELECT DISTINCT * FROM " + TABLE_RULES + " WHERE instr('"+ value + "',rule)!=0 ORDER BY " + KEY_ID+ " DESC;"
该语句是Java语言编写的,因此“value”应该插入到该语句中。
然而,这并不起作用。我对SQL或SQLite不太熟悉,有没有人可以给个提示?谢谢。
编辑:我还尝试过使用charindex,但也没有成功。
编辑:下面给出更详细的示例。给定以下数据库:
id --- rule ---
1 "jpg"
2 "ponies"
3 "gif"
4 "pdf"
现在用户输入一个文件名,假设为“poniesAsUnicorns.jpg”。因此,“poniesAsUnicorns.jpg”是我的输入字符串,查询应匹配id#1和id#2,因为“poniesAsUnicorns.jpg”包含“jpg”和“ponies”。
希望这样能够澄清我的意思。
编辑: 以下是我尝试过的内容:
String statement = "SELECT DISTINCT * FROM " + TABLE_RULES
+ " WHERE charindex(rule,'" + value
+ "') > 0 ORDER BY " + KEY_ID + " DESC;";
但会抛出“未找到此操作”的异常。