【发布时间】:2019-01-12 09:09:28
【问题描述】:
假设我有这样一张桌子:
A | B
1 | something
2 | something2
4 | something3
8 | something4
它总是按 A 排序,但它们不一定是连续的。
现在假设我输入了数字 6,我想要返回的是:
A | B
4 | something3
8 | something4
因为 6 介于 4 和 8 之间。
如果我搜索 2,那么我只想要第二行。或者实际上第 2 和第 3 或第 1 和第 2 都可以,没关系,过滤可以轻松完成。
边缘情况也无关紧要,但假设我们有 0 我只想要第一行,假设 12 我只想要最后一行,但如果它没有返回任何内容也可以。
我有一个选择是将它们存储为范围,即:
A | B | C
1 | 2 | something
2 | 4 | something2
4 | 8 | something3
8 | null | something4
...然后查找会很容易,但我试图避免这种情况。我真的想不出一种方法来进行这种连续的行比较。
我正在使用 PSQL,但我更好奇 SQLite 中是否也有办法做到这一点。
【问题讨论】:
标签: sql postgresql sqlite