0

我需要使用“子字符串”进行查询,但我不知道如何正确编写它。

我有这个查询

String where2 = SUBSTRING(DatabaseHelper.DATE,0,4) + "=" + "'" + year + "'";

cursor = db.query("PRODUCT", FROM, where2, null, null, null, orderBy);

它有什么问题?

4

1 回答 1

0

使用类的substring(int beginIndex, int endIndex)方法String。在您的情况下,这看起来像这样:

String where2 = DatabaseHelper.DATE.subString(0, 4) + "=" + "'" + year + "'";
cursor = db.query("PRODUCT", FROM, where2, null, null, null, orderBy);

我假设 DatabaseHelper.DATE 指的是String.

编辑:

您指的是 SQLite 中的子字符串方法,请使用substr(X,Y,Z)核心函数的方法。您可以在此列表中查看:http ://www.sqlite.org/lang_corefunc.html

您的where2字符串将如下所示:

String where2 = "substr(" + DatabaseHelper.DATE + ", 0, 5) ='" + year + "'";

您可能还想为该列加上别名,因为结果将返回一个具有类似名称的列substr。你可以这样做:

String where2 = "substr(" + DatabaseHelper.DATE + ", 0, 5) ='" + year + "' AS mycolumn";
于 2013-05-22T18:00:39.840 回答