使用 sql 查询我得到 100 个结果行。我需要知道这 100 行中的单行位置。我有可以循环检查的独特字段,但这需要很长时间。有没有一种方法可以让我在查询结果中获得单个项目的位置。
例如:我有一个包含唯一用户 ID(12, 13, 20, 21, 34, 5)
的表。这些用户按创建日期排序。如何通过 SQL 查询获取 id = 34
的用户位置?
最佳答案
优化 SQL 查询总是比对大量结果进行操作更有效。
制作 select
与 where
您将在其中检查有多少用户的创建日期小于所需 ID 所有者的子句
SELECT
count(*)
FROM
table
WHERE
creationDate < (SELECT creationDate FROM table WHERE id = 34)
那么记录位置就是上面select的值(要不加1看你是从0还是1算起)。
如果创建日期可以重复,您需要处理这种情况取决于您如何处理具有相同 creationDate
的记录(也许简单的 creationDate <= ...
对你来说就足够了)
关于java - SQLite 在不使用循环的情况下获取结果查询中的单行位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36444995/