为什么我不能在python中获取sql语句?

时间:2010-09-23 13:39:04

标签: python sql mysql

我有一个非常大的表(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)

3 个答案:

答案 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)