我在下面有这张表:
ID name Last
0 Joe Doe
1 Hut Nob
2 Lis Hug
3 Edy mur
我使用这个查询来选择一个 ID:
SELECT name FROM myDatabase WHERE ID = 2
在这种情况下,查询返回字符串 李 ,现在,我如何选择前任值?
很简单,2的前身是1,所以我只需要做
WHERE ID < 2
或 WHERE ID = 2 - 1
.但是这个方法有问题!假设我删除了该行 (ID = 1),查询将返回 空 ,因为该 ID 不存在。
那么,在这个例子中,我如何从 ID 2 中选择前任并返回 ID 0? (ID 1 不见了)
最佳答案
您可以使用子查询来查找最大值 ID
低于 ID
您提供的:
SELECT *
FROM mytable m
WHERE m.id = (SELECT MAX(m2.id)
FROM mytable m2
WHERE m2.ID < 2);
SqlFiddleDemo
关于Sqlite 查询 - 我如何选择前任?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34372659/