Python 使用mysql占位符从sql表中选择时出错
我试图在一个表中选择一些值,该表有一个名为“Name”的列。那一栏有网球运动员的名字。我想在python中为每个玩家存储一些统计信息,但访问该表时遇到了问题。我不断收到一个“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行“='Rafael Nadal''附近使用的正确语法”。正如您所看到的,MySQL清楚地解释了我用以代替'Rafael Nadal'的%s,但仍然会出现错误。有人能帮我吗Python 使用mysql占位符从sql表中选择时出错,python,mysql,sql,web-scraping,mysql-connector-python,Python,Mysql,Sql,Web Scraping,Mysql Connector Python,我试图在一个表中选择一些值,该表有一个名为“Name”的列。那一栏有网球运动员的名字。我想在python中为每个玩家存储一些统计信息,但访问该表时遇到了问题。我不断收到一个“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行“='Rafael Nadal''附近使用的正确语法”。正如您所看到的,MySQL清楚地解释了我用以代替'Rafael Nadal'的%s,但仍然会出现错误。有人能帮我吗 recordTuple = ('Rafael Nadal', ) mySq
recordTuple = ('Rafael Nadal', )
mySql_insert_query = """SELECT `First_Serve(%)` FROM `serve2` WHERE Name =%s"""
cursor.execute(mySql_insert_query, recordTuple)
aI = cursor.fetchall()[0][0]/100
由于
%
用于标记SQL中的占位符,因此如果要按字面意思使用,必须将占位符加倍
mySql_insert_query = """SELECT `First_Serve(%%)` FROM `serve2` WHERE Name =%s"""
请参见列名中确实有一个
%
?将其加倍到%%
。%s是一个占位符。这在MySql python连接器中用于表示变量名。在这种情况下,变量为“Rafael Nadal”。我最终希望用户能够为自己选择播放机我知道的%s
。问题是First\u Serve(%)
。请尝试将列名name
放在反勾中。把它改成第一次发球(%)谢谢,但那不行。它返回错误“字段列表”中的“未知列”First_Serve(%)”。我很确定这是查询的最后一部分的问题,因为当我用“Rafael Nadal”替换%s时,它工作得非常好。我链接到了另一个类似这样的问题。但在MySQL连接器中,它可能与PyMySQL不同。