首页 > 解决方案 > 从 MySQL 数据库中选择结果并将其分配给变量

问题描述

我正在通过 Python 环境连接到 MySQL 数据库。我使用 pypyodbc 作为连接器。一切正常,我可以选择和插入结果等。

当我尝试将从数据库获取的结果实际分配给一个变量时,问题就出现了:它实际上只是有时有效,而且很少有效。

这是一些代码:

SQLCommand = ("SELECT TRIM(' ' FROM ColumnName) FROM MyDB.dbo.MyTable WHERE ColumnName='%s'" % (my_variable)
cursor.execute(SQLCommand)
print("Here is the result from the database ",  cursor.fetchone())

another_variable =  cursor.fetchone()
print("Here is the value from the database assigned to a variable: ", another_variable)

如您所见,我尝试将获取的结果分配给位于以下位置的变量:

another_variable =  cursor.fetchone()

我要获取的单词将在数据库中以 day 形式出现。Cursor.fetchone 每次都会获取结果并打印出来。但它有时只会将它分配给一个变量。很少。

我很困惑,这样做有什么已知问题吗?我有什么遗漏吗?我需要它每次都将结果分配给游标,而不是很少。

标签: pythonmysql

解决方案


首先,您应该为TRIM查询内部的调用分配一个别名,例如

SELECT TRIM(' ' FROM ColumnName) AS val FROM MyAI_DB.dbo.MyDatabase ...

然后,要访问列/别名,您需要引用row返回的对象fetchone()

sql = "SELECT TRIM(' ' FROM ColumnName) AS val FROM MyAI_DB.dbo.MyDatabase " +
    "WHERE ColumnName = '%s'" % (my_variable)
cursor.execute(sql)
row = cursor.fetchone()
print print "%s" % (row["val"])

推荐阅读