0
Я получаю неожиданные результаты с запросом SQLite3 в Python3.Python: странный результат запроса SQLite3
if first_waypoint_number < last_waypoint_number:
result = list(c.execute("SELECT WPNumber, WPID, ROUTE FROM rte WHERE ROUTE = ? AND WPNumber BETWEEN ? AND ?", (route, first_waypoint_number, last_waypoint_number)))
print(result)
else:
result = list(c.execute("SELECT WPNumber, WPID, ROUTE FROM rte WHERE ROUTE = ? AND WPNumber BETWEEN ? AND ? ORDER BY WPNumber DESC", (route, first_waypoint_number, last_waypoint_number)))
print(result)
Первый запрос работает, как ожидалось, и производит этот результат:
[('A123', 25, 'WAYPOINTX'), ('A123', 26, 'WAYPONTY'), ('A123', 27, 'WAYPOINTZ')]
Второй запрос, однако, производит пустой список []
, в то время как он должен возвращать один и тот же список в обратном порядке.
Я тестировал оба запроса в SQLite3 без проблем.
Я что-то упустил?
В обоих запросах оператор BETWEEN идентичен. Я просто отменяю результат с помощью DESC. Кроме того, оба запроса были протестированы в SQLite без каких-либо проблем. – Caesius
Попробуйте выполнить тестовые запросы, когда нижняя граница больше верхней: 'BETWEEN 27 и 25'. Предложение 'else' гарантирует, что это так. – hamstergene
Doh .. конечно. Виноват! – Caesius