instr()函数SQLITE for Android?

前端之家收集整理的这篇文章主要介绍了instr()函数SQLITE for Android?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我现有的Android上的sqlite数据库上执行以下操作,这是一种类似的构建
colomns:id — rule — path — someotherdata

现在的规则,例如包含文件名的一部分(或者只是一些简单的东西,如“mypicture”或文件类型,如“jpg”).现在我想要做的是,我想写一个查询,它获取我的所有规则,其中包含inputtring的一部分.
我试过以下示例:String value =“somepicturefilename.jpg”

我的声明:

"SELECT DISTINCT * FROM " + TABLE_RULES + " WHERE instr('"+ value + "',rule)!=0 ORDER BY " + KEY_ID+ " DESC;"

语句在java中,因此应该在语句中插入“value”.

但是,这不起作用.我不太熟悉sqlsqlite,有没有人有一个提示=;)谢谢.

编辑:我也尝试过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");

猜你在找的Sqlite相关文章