flask_mysqldb用于执行SQL字符串不起作用

pbwdgjma  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(125)

我正在为一个应用程序使用flask和flask_mysqldb。然而,我试图使用列别名执行一个简单的查询。如果我使用其他一些变量来构造查询,它将不起作用,如下所示:

alias = "x"
sql  = "SELECT COUNT(*) AS " + alias + " FROM DBTable"

db   = MySQL(app)
conn = db.connection
cursor = conn.cursor()
cursor.execute (sql)

我得到一个错误“你有一个错误,在您的SQL语法;查看与MySQL服务器版本相对应的手册,了解要使用near...”的正确语法
然而,如果我只是简单地将第二行代码替换为sql = "SELECT COUNT(*) AS x FROM DBTable",它就可以工作了。我已经检查了两个sql变量具有相同的值。所以这对我来说非常困惑。
有谁知道这个错误背后的原因吗?

tcomlyy6

tcomlyy61#

已经解决了(感谢ChatGPT!)MySQL的列别名需要包含单引号,如下所示:

sql  = "SELECT COUNT(*) AS '" + alias + "' FROM DBTable"

有时候,如果你忘记指定单引号,它会自动添加,我的第二个example sql = "SELECT COUNT(*) AS x FROM DBTable"就是这种情况。

相关问题