gpt4 book ai didi

java - 获取 SQLite 表中的行索引

转载 作者:行者123 更新时间:2023-11-30 06:32:31 25 4
gpt4 key购买 nike

因此,为了尽量保持简洁,我需要获取数据库中 x 行和 y 行之间的所有信息。现在我有一个自动递增的 globalId 列,但是,当我从数据库中删除一行(我将要做的)时,插入的下一条数据将按预期删除数据的 globalId +1。这会产生一个问题,因为我无法简单地使用 x 和 y 值之间的 for 循环进行迭代,并获取 globalId = i 的所有数据点。但是,如果我可以获得该行的索引,那么与现在已删除的过去的行之间就不会有间隙。我尝试了很多方法来获取行索引,但似乎没有任何效果。

我使用 Java 来实现此目的,因此我从查询中返回了一个 ResultSet(如果有帮助的话)。

最佳答案

这是一个独立于平台的解决方案:

String sqlQuery = "SELECT .... FROM ... ORDER BY global_id ASC";
ResultSet rs = runQuery(sqlQuery); // a made-up method to hide the details
final int x = 10;
final int y = 20;
int i = 0;
while (i < x && rs.next()) {
i++;
}
while (i < y && rs.next()) {
// retrieve record
i++;
}

那么我们在这里做什么?

  • order by 子句确保我们可以滚动到第 n 个项目 - 无论 id 序列中是否存在漏洞
    • 第一个 while 循环转到窗口的开头
    • 第二个 while 循环将遍历您需要的确切记录。您可以处理它们。

或者,您可以使用 limit-offset ,如所解释的here :

SELECT .... FROM ... ORDER BY global_id ASC LIMIT 20 OFFSET 10

只是关于偏移的警告:虽然它看起来很优雅,但它有自己的怪癖。有专家建议not to use it .

关于java - 获取 SQLite 表中的行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45811141/

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