Android SQLite查询选择一行并返回下两行
我的数据库看起来像这样Android SQLite查询选择一行并返回下两行,android,sql,sqlite,Android,Sql,Sqlite,我的数据库看起来像这样 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
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;
}
我要寻找的结果是,例如,如果macparameter是ab:cd:17,level=-68,那么函数将返回提供的第1、2、3行示例数据
编辑:
此查询工作正常,但它只给我第一条与mac和String.valueOflevel参数匹配的记录,以及下两条ID最高的记录。如果我的表中有多条记录具有相同的这些参数值,该怎么办?是否有方法获取所有匹配记录和具有最高ID的两个next?示例数据假设“下一行”是指具有下一个最高ID的行,则可以使用子查询获取所需行的ID,然后按和限制排序以获取下两行:
select st.*
from scans_table st
where st.id >= (select st2.id from scans_table st2 where <your conditions are here>)
order by st.id asc
limit 3;
您好,我不想就同一个问题添加新问题。我刚刚编辑了其中的一部分。如果你能看一下,那就太好了。@masoholic。你应该用适当的样本数据和期望的结果提出一个新问题。特别是,在重复的情况下,特别是第二个id出现(例如3次)时,要具体说明该怎么做。
select st.*
from scans_table st
where st.id >= (select st2.id from scans_table st2 where <your conditions are here>)
order by st.id asc
limit 3;