моя база данных выглядит следующим образом
ID SSID BSSID RSSI
1. ABCD ab:cd:17 -68
2. efgh cd:as:25 -60
3. ijkl cs:gb:d6 -75
4. abcd dc:5g:f4 -72
....
518. ABCD ab:cd:17 -68
519. asfd ag:4g:32 -60
520. aasd gd:5g:56 -79
Я пытаюсь создать функцию, которая выбирает строку на основе входных параметров функции и возвращает эту строку с двумя следующими строками.
Что я сделал до сих пор, так это то, что функция возвращает запись с соответствующими параметрами.
public Cursor getRequiredData(String mac, int level){
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT BSSID, RSSI FROM Scans_table WHERE BSSID =? AND RSSI =?", new String[] {mac, String.valueOf(level)});
return res;
}
Результат, который я ищу, например, если параметр mac
равенab:cd:17
и level = -68
функция возвращает строки 1, 2, 3 (предоставлены примеры данных)
РЕДАКТИРОВАТЬ:
Cursor res = db.rawQuery("SELECT * from Scans_table st where ID >= " +
"( select ID from Scans_table where BSSID =? AND RSSI =? ) order by st.ID asc limit 3 ", new String[] {mac, String.valueOf(level)});
Этот запрос работает нормально, ноон просто дает мне первую запись, которая соответствует параметрам mac
и String.valueOf(level)
, и следующие 2 записи с наибольшим значением ID
.Что если в моей таблице более одной записи с одинаковыми значениями этих параметров?Есть ли способ получить все подходящие записи и 2 связи с самым высоким ID? (Пример данных)