Python MySQL参数查询编程错误:1064(42000)

问题描述 投票:0回答:2

我想使用python程序查询MySQL表,但出现此错误:

ProgrammingError:1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“ 10”偏移量“ 0”附近使用]

令人困惑的是,当我不使用变量时,查询运行如下所示:

cur = connection.cursor()
query = "SELECT * FROM DB.Table LIMIT 10 OFFSET 0"

cur.execute(query)

records = cur.fetchall()

for record in records:
    print(record)

但是我需要逐批选择数据,我必须在for循环中执行上述命令。我需要定义变量。但是我收到了错误1064。这是有错误的代码:

i = 0
p = str(i)
j = 10
q = str(j)

cur = connection.cursor()
query = "SELECT * FROM DB.Table LIMIT %s OFFSET %s"

cur.execute(query,(q,p,))

records = cur.fetchall()

for record in records:
    print(record)

感谢您的帮助。

我想使用python程序查询MySQL表,但出现此错误:ProgrammingError:1064(42000):您的SQL语法有错误;检查与您的MySQL服务器相对应的手册...

python mysql limit offset mysql-connector-python
2个回答
1
投票

您可以使用cur.execute(query % (q,p))


0
投票

简单来说,请勿将参数化的值转换为字符串,因为错误会显示单引号:

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.