打印表行mysql python

时间:2016-11-23 12:40:25

标签: python mysql sql

我在mysql数据库中编写日志,并创建了一个表coordinates,其中包含Idxy列。当我想从数据库中读取数据时,我想每次都打印最新的日志:

cursor.execute("Select x,y from coordinates ORDER BY id DESC LIMIT 1")
for row in cursor.fetchall():
    print(row[0])

它总是返回日志中第一行,而不是由DESC订购。似乎fetchall更改了日志的顺序。有没有解决方案?

1 个答案:

答案 0 :(得分:0)

您的代码仅返回最后一行,因为您只请求了1项:

"Select x,y from coordinates ORDER BY id DESC LIMIT 1"
# You asked your database to return just one record ^

因为,您已经在查询ORDER BY id DESC中提到过,它将根据ID的递减顺序返回值。可能是你查了错误的数据。

此外,您只打印x的值,因为您的代码再次要求:

for row in cursor.fetchall():
    print(row[0]) 
    #         ^ item at 0th index     

要获取xy的所有值,请执行以下操作:

for x, y in cursor.fetchall():
    print("x= ", x, ", y= ", y) 

# OR,
# for row in cursor.fetchall():
#     print("x= ", row[0], ", y= ", row[1])