如何接收Android SQLi数据库表列上的最后一条非空记录?
我使用此代码,但现在如果发现此记录,则返回NULL: 表:1、苹果、牛奶、空、假、空、空必须返回假如何接收Android SQLi数据库表列上的最后一条非空记录?,android,sqlite,Android,Sqlite,我使用此代码,但现在如果发现此记录,则返回NULL: 表:1、苹果、牛奶、空、假、空、空必须返回假 对于SQlite和大多数关系数据库,除非使用ORDERBY子句,否则不存在first-last或order的概念 但是,如果希望最后一个非空值,则可以基于 SELECT your_column FROM your_table WHERE your_column IS NOT NULL ORDER BY your_sort_column DESC LIMIT 1 因此,将其转换为Android,您
对于SQlite和大多数关系数据库,除非使用ORDERBY子句,否则不存在first-last或order的概念 但是,如果希望最后一个非空值,则可以基于
SELECT your_column FROM your_table WHERE your_column IS NOT NULL ORDER BY your_sort_column DESC LIMIT 1
因此,将其转换为Android,您可以使用:-
这假设单个列用作列,以:-
- 检索(第二个参数)
- 测试NULL的列(WHERE子句(第3个参数)(无需使用第4个参数,可与第3个参数一起使用))和
- 要排序的列(第7个参数)
第八个参数是LIMIT子句(请注意,该方法会生成包含关键字的SQL,因此不应对其进行编码)。您在这里运行的底层查询是什么?您将获得以下数据
1,apple,milk,NULL,fake,NULL,NULL
来自sqllite?@frankenstein这是一个我write@greg那么,当您调用这个getDataTom
方法时,您得到了什么?@frankenstein我得到了一个字符串,其中包含数据库表friend上我的列上的最后一条记录
SELECT your_column FROM your_table WHERE your_column IS NOT NULL ORDER BY your_sort_column DESC LIMIT 1
Cursor cursor = writableDatabase.query(
TABLE_NAME,
new String[]{str},
str + " IS NOT NULL",
null, null, null,
str + " DESC",
"1"
);