首页 > 解决方案 > 使用 mysql 占位符从 sql 表中选择时出错

问题描述

我正在尝试在具有名为“名称”的列的表中选择一些值。该列包含网球运动员的姓名。我想在 python 中为每个玩家存储一些统计信息,但我无法访问该表。我不断收到“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '='Rafael Nadal'' 附近使用正确的语法”如您所见,mysql 清楚地解释了我用 %s 正确地代替了 'Rafael Nadal',但它仍然会出现错误。谁能帮我?

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

标签: pythonmysqlsqlweb-scrapingmysql-connector-python

解决方案


由于%用于在 SQL 中标记占位符,因此如果要从字面上使用它,则必须将其加倍。

mySql_insert_query = """SELECT `First_Serve(%%)` FROM `serve2` WHERE Name =%s"""

请参阅如何从 python mysql 查询中转义 %


推荐阅读