gpt4 book ai didi

python - MySQL (python 3.6) - SELECT * FROM table - 返回行数而不是表数

转载 作者:行者123 更新时间:2023-11-29 15:57:42 24 4
gpt4 key购买 nike

我正在使用 MySQL,但我有一些意外的行为。我过去有使用 SQLite 的经验,但我想我在这里遗漏了一些东西。

使用查询SELECT * FROM tableName我希望输出的是表的内容。相反,我得到一个 int,即表中的行数。这是我正在使用的代码段。

import MySQLdb

conn=MySQLdb.connect(host="xxx",user="xxx",passwd="xxx")
cursor = conn.cursor()
cursor.execute("create database if not exists Test;")
cursor.execute("use Test;")
cursor.execute("create table if not exists City (id int not null primary key auto_increment, city varchar(50), unique(city));")
cursor.execute("insert into City (city) values ('Firenze');")
cursor.execute("insert into City (city) values ('Roma');")
conn.commit()
print(cursor.execute("select city from City;"))

我希望得到:

Firenze
Roma

相反,我得到:2

如果我从 SQL 客户端运行相同的查询,我会得到预期的输出。有什么聪明的主意吗?谢谢:)

最佳答案

您的代码中缺少 FetchAll() 函数。获取全部只是获取最后执行的语句的数据。

import MySQLdb
conn=MySQLdb.connect(host="xxx",user="xxx",passwd="xxx")
cursor = conn.cursor()
cursor.execute("create database if not exists Test;")
cursor.execute("use Test;")
cursor.execute("create table if not exists City (id int not null primary key
auto_increment, city varchar(50), unique(city));")
cursor.execute("insert into City (city) values ('Firenze');")
cursor.execute("insert into City (city) values ('Roma');")
conn.commit()
print(cursor.execute("select city from City;"))
myresult = mycursor.fetchall()
for x in myresult:
print(x)

关于python - MySQL (python 3.6) - SELECT * FROM table - 返回行数而不是表数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56360246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com