這裏是我的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