instr()函数SQLITE for Android?
发布时间:2020-12-12 19:13:07 所属栏目:百科 来源:网络整理
导读:我想在我现有的Android上的sqlite数据库上执行以下操作,这是一种类似的构建 colomns:id — rule — path — someotherdata 现在的规则,例如包含文件名的一部分(或者只是一些简单的东西,如“mypicture”或文件类型,如“jpg”).现在我想要做的是,我想写一个查
我想在我现有的Android上的sqlite数据库上执行以下操作,这是一种类似的构建
colomns:id — rule — path — someotherdata 现在的规则,例如包含文件名的一部分(或者只是一些简单的东西,如“mypicture”或文件类型,如“jpg”).现在我想要做的是,我想写一个查询,它获取我的所有规则,其中包含inputtring的一部分. 我的声明: "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;"; 但抛出“没有这样的操作”的例外. AFAIK instr()不可用,因此您可以使用:select * from table where replace("poniesAsUnicorns.jpg",rule,"") != "poniesAsUnicorns.jpg"; 或者对不区分大小写的匹配: select * from table where replace(upper("poniesAsUnicorns.jpg"),upper(rule),"") != upper("poniesAsUnicorns.jpg"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |