0

我有这个 sqlite3 表(简化):

+--------+----------+-------+
| ROUTE  | WPNumber |  WPID |
+--------+----------+-------+
|  A123  |    1     | WP001 |
|  A123  |    2     | WP002 |
|  A123  |    3     | WP003 |
|  [...] |   [...]  | [...] |
|  A123  |    20    | WP020 |
+--------+----------+-------+

假设我想反向行驶(020 到 001)。

如何获得介于两者之间的所有 WPID?我知道可以使用 BETWEEN 和 DESC 构建查询,但是我必须构建两个单独的查询并让 Python 检查何时使用哪个查询。是否可以让 sqlite3 完成工作,与方向无关(反向与否)。

4

1 回答 1

0

您可以通过反转ORDER BY子句中使用的数字来反转排序顺序。将参数设置?1-1

SELECT WPID
FROM ThisTable
WHERE ROUTE = 'A123'
ORDER BY WPNumber * ?

如果您只是使用类似的查询DESC,数据库将有更好的机会使用索引优化排序。

于 2013-10-01T19:15:01.887 回答