我有这个sqlite3表(简化):
+--------+----------+-------+
| ROUTE | WPNumber | WPID |
+--------+----------+-------+
| A123 | 1 | WP001 |
| A123 | 2 | WP002 |
| A123 | 3 | WP003 |
| [...] | [...] | [...] |
| A123 | 20 | WP020 |
+--------+----------+-------+
假设我想沿着相反的方向(020到001)旅行。
如何获取介于两者之间的所有WPID?我知道可以使用BETWEEN和DESC构建一个查询,但是我必须构建两个单独的查询并让Python检查何时使用哪个查询。是否有可能让sqlite3完成工作,与方向无关(反向或不反向)。
答案 0 :(得分:0)
您可以通过反转ORDER BY
子句中使用的数字来反转排序顺序。
将参数?
设置为1
或-1
:
SELECT WPID
FROM ThisTable
WHERE ROUTE = 'A123'
ORDER BY WPNumber * ?
如果您只使用DESC
的类似查询,数据库将有更好的机会使用索引优化排序。