【发布时间】:2018-12-13 19:10:46
【问题描述】:
我的数据库是这样的
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
我正在尝试创建一个函数,该函数根据函数的输入参数选择行并返回该行以及下一行 2 行。
到目前为止我所做的是该函数返回具有匹配参数的记录。
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;
}
我正在寻找的结果是,例如,如果 macparameter 是 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) 参数的第一条记录,以及接下来的两条ID 最高的记录。如果我的表有多个具有相同参数值的记录怎么办?有没有办法获取所有匹配的记录和 ID 最高的 2 个下一个?(示例数据)
【问题讨论】: