Возможно, вам понадобится закодировать объект unicode с помощью .encode('utf-8')
. В вашем файле python добавьте это в первую строку
# -*- coding: utf-8 -*-
. Если ваш файл сценария работает автономно, добавьте его во вторую строку
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
. Здесь это документ: PEP 0263
Вы можете гарантировать порядок строк, включив предложение ORDER BY
, которое включает в себя все столбцы, необходимые для уникальной идентификации строки. Фактически, это единственный способ гарантировать порядок от повторных вызовов оператора SELECT, даже если в базе данных ничего не изменилось. Без однозначного предложения ORDER BY ядро базы данных может свободно возвращать строки в любом удобном для них порядке в данный момент.
Рассмотрим простой пример:
Вы являетесь единственным пользователем базы данных. Механизм базы данных имеет кэш строк в памяти, который может содержать последние 1000 найденных строк. Сервер базы данных был только что перезапущен, поэтому кеш пуст. Вы SELECT * FROM tablename
и ядро базы данных извлекаете 2000 строк, последние 1000 из которых остаются в кэше. Затем вы делаете SELECT * FROM tablename
снова. Механизм базы данных проверяет кэш и находит 1000 строк из предыдущего запроса, поэтому он немедленно возвращает их, потому что при этом ему больше не придется нажимать на диск. Затем он приступает к поиску других 1000 строк. Конечным результатом является то, что 1000 строк, которые были возвращены последними для начального SELECT, фактически возвращаются первыми для последующего SELECT.