SQLite 在不使用循环的情况下获取结果查询中的单行位置

Raf*_*ael 1 java sql sqlite android

使用 sql 查询,我得到 100 个结果行。我需要知道这 100 行内的单行位置。我有可以循环检查的独特字段,但这需要很长时间。有没有办法可以在查询结果中获得单个项目的位置。

例如:我有一个带有唯一用户 ID 的表(12, 13, 20, 21, 34, 5)。这些用户按创建日期排序。如何id = 34使用 sql 查询获取用户位置?

m.a*_*icz 5

优化 SQL 查询总是比操作大量结果更有效。

创建一个selectwithwhere子句,您将在其中检查有多少用户的创建日期少于所需的 id 所有者

SELECT 
    count(*) 
FROM 
    table 
WHERE 
    creationDate < (SELECT creationDate FROM table WHERE id = 34)
Run Code Online (Sandbox Code Playgroud)

然后记录位置是上面选择的值(或者你需要加 1 取决于你是从 0 还是 1 开始计数)。


如果创建日期可以重复,您将需要处理这种情况取决于您如何处理相同的记录creationDate(也许简单creationDate <= ...对您来说就足够了)