我有一个非常大的表(374870行),当我运行以下代码时,时间戳最终成为一个值为374870的long int ....我希望能够获取表中的所有时间戳。 ..但我得到的只是一个很长的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)
答案 0 :(得分:2)
试试这个:
cur = db.cursor()
cur.execute(sql)
timestamps = []
for rec in cur:
timestamps.append(rec[0])
答案 1 :(得分:1)
您需要在光标上调用fetchmany()
来获取多行,或者在循环中调用fetchone()
,直到它返回None
。
答案 2 :(得分:0)
考虑您获得的非常长的整数是查询结果中的行数的可能性。
考虑阅读文档(PEP 249)...(1)未定义cursor.execute()的返回值;你所看到的是你的数据库特有的,为了便携性,不应该依赖它。 (2)您需要执行results = cursor.fetch{one|many|all}()
或迭代光标... for row in cursor: do_something(row)