Я начал использовать PDO, потому что поддержка оператора лучше, по-моему. Я использую уровень доступа к данным ActiveRecord-esque, и намного легче реализовать динамично сгенерированные операторы. Привязка параметров MySQLi должна быть сделана в единственной функции/вызове метода, поэтому если бы Вы не знаете до времени выполнения, сколько параметров требуется связать, Вы вынуждены использовать call_user_func_array()
(я полагаю, что это - правильное имя функции) для выборов. И забудьте о простой динамической привязке результата.
Больше всего, мне нравится PDO, потому что это - очень разумный уровень абстракции. Это просто в использовании он в абсолютно абстрактных системах, где Вы не хотите писать SQL, но это также облегчает использовать более оптимизированный, чистый тип запроса системы, или к смешиванию и подгонке два.
queryset = Shop.objects.filter(id=someArray[id])
limit = 1000
count = queryset.count()
endoflist = queryset.order_by('timestamp')[count-limit:]
endoflist
- это тот набор запросов, который вам нужен.
Следующее - из документации django о reverse () queryset метод.
Чтобы получить "последние" пять элементов в набор запросов, вы можете сделать это:
my_queryset.reverse () [: 5]
Обратите внимание, что это не совсем то же самое. как нарезка от конца последовательности в Python. В приведенном выше примере будет сначала вернуть последний элемент, затем предпоследний пункт и так далее. Если бы у нас было последовательность Python и посмотрел на seq [-5:], мы увидим пятый-последний пункт первый. Django не поддерживает этот режим доступа (вырезание из конец), потому что это невозможно сделать это эффективно в SQL.
Поэтому я не уверен, является ли мой ответ просто неэффективным или крайне неэффективным. Я переместил order_by
в последний запрос, но не уверен, имеет ли это значение.