python - 从 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 每次都会获取结果并打印出来。但它有时只会将它分配给一个变量。很少。
我很困惑,这样做有什么已知问题吗?我有什么遗漏吗?我需要它每次都将结果分配给游标,而不是很少。
解决方案
首先,您应该为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"])
推荐阅读
- asp.net-core - 即使发送了 Identity.Applicaton cookie,controller.User 也没有声明
- python - 如果 csv 存储为变量,您如何使用 pandas read_csv() 方法?
- linux - 短暂的临时文件会避免实际的磁盘 io 吗?
- jquery - 如何从 Kendo.Grid 的编辑器模板内的列中获取焦点或 onblur() 的值?
- haskell - 运行程序时出错
- python - 如何使 Django OneToOneField 跨类互斥
- d3.js - 如何查看 D3 版本?
- go - 使用“go get”下载二进制文件而不将它们添加到 go.mod
- php - 如何使用 Drupal 站点上的服务帐户验证 google-indexing
- python - 使用python创建新的现有文件夹,其标识符如folder_1、folder_2等。