我在mysql数据库中编写日志,并创建了一个表coordinates
,其中包含Id
,x
,y
列。当我想从数据库中读取数据时,我想每次都打印最新的日志:
cursor.execute("Select x,y from coordinates ORDER BY id DESC LIMIT 1")
for row in cursor.fetchall():
print(row[0])
它总是返回日志中第一行,而不是由DESC订购。似乎fetchall
更改了日志的顺序。有没有解决方案?
答案 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
要获取x
和y
的所有值,请执行以下操作:
for x, y in cursor.fetchall():
print("x= ", x, ", y= ", y)
# OR,
# for row in cursor.fetchall():
# print("x= ", row[0], ", y= ", row[1])