这里是我的sqlite
表:选择每PARENT_ID只有最后插入的行
_ID | DATE_INSERTED | LATITUDE | LONGITUDE | TRACKER_ID | DATA
我需要每TRACKER_ID
,其中LATITUDE
和LONGITUDE
不等于“,以获得与最后插入的行一个Cursor
(由DATE_INSERTED
) 0
“。
我做它在一个CursorLoader
,这就是我能得到:
public static CursorLoader getLoaderForLastMessages(Context context) {
String sel = MessageTable.LONGITUDE + " !=? and " + MessageTable.LATITUDE + " !=?";
String[] selArgs = {"0", "0"};
return new CursorLoader(context, GpsProvider.MESSAGE_CONTENT_URI, null, sel, selArgs, null);
}
我不知道该怎么每TRACKER_ID
只选择最后一排。我猜DISTINCT
和GROUP BY
是好话,但我不知道如何正确使用它们。
原始SQLITE
查询也是一个很好的答案,我会适应它我的代码。
编辑: 为了澄清,我需要这样的光标:
_ID | DATE_INSERTED | LATITUDE | LONGITUDE | TRACKER_ID | DATA
3 | 23424123 | 13 | 43 | 1 | data
6 | 23563344 | 25 | 56 | 2 | data
19 | 56573473 | 37 | 12 | 3 | data
43 | 23635743 | 82 | 99 | 4 | data
也请您告诉他如何不得到值,如果lattitude和经度不等于零 – Jamil 2014-09-02 13:53:49
是怎么做的帮助获取最后一个记录PER TRACKER_ID? – 2014-09-02 13:58:50
他可以包含一个WHERE子句,如果他想要经度和长度<> 0以及其他参数! – Skynet 2014-09-02 14:04:55