gpt4 book ai didi

android - SQLite 查询选择一行并返回 2 下一行

转载 作者:行者123 更新时间:2023-11-29 18:37:24 25 4
gpt4 key购买 nike

我的数据库是这样的

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;
}

我正在寻找的结果是,例如如果 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)});

这个查询工作正常,但它只给了我第一个匹配 macString.valueOf(level) 参数的记录,以及接下来的 2 个最高 ID。如果我的表中有多条记录具有相同的这些参数值怎么办?有没有办法获取所有匹配的记录和 2 个具有最高 ID 的下一个记录?(示例数据)

最佳答案

假设“下一行”是指“具有下一个最高 ID 的行”,您可以使用子查询获取所需行的 ID,然后按 order bylimit 获取接下来的两行:

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;

关于android - SQLite 查询选择一行并返回 2 下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53768598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com