У меня очень большая таблица (374870 строк), и когда я запускаю следующие временные метки кода, они заканчиваются тем, что они длиннее int со значением 374870.... Я хочу иметь возможность захватить все временные метки в таблице... но все, что я получаю, это long int: S
import MySQLdb
db = MySQLdb.connect(
host = "Some Host",
user = "SOME USER",
passwd = "SOME PASS",
db = "SOME DB",
port = 3306
)
sql = "SELECT `timestamp` from `table`"
timestamps = db.cursor().execute(sql)
Попробуйте следующее:
cur = db.cursor()
cur.execute(sql)
timestamps = []
for rec in cur:
timestamps.append(rec[0])
Вам нужно вызвать fetchmany()
на курсор для извлечения нескольких строк или вызвать fetchone()
в цикле, пока он не вернет None
.
timestamps
списка могут вместить ваши данные. Если вы скажете мне, как это выглядит сейчас, мы можем попытаться преобразовать его в любой формат, который вам нужен.
Учитывайте возможность того, что нечетное целое число, которое вы получаете, - это количество строк в результатах запроса.
Рассмотрим чтение документов (PEP 249)... (1) возвращаемое значение из cursor.execute() не определено; то, что вы видите, особенно для вашей базы данных, и для удобства переноски не следует полагаться. (2) вам нужно сделать results = cursor.fetch{one|many|all}()
или перебрать курсор... for row in cursor: do_something(row)
for rec in cur.fetchall():
и это тоже будет работать