【发布时间】:2019-08-03 00:01:44
【问题描述】:
我正在尝试使用 python 执行一个简单的 mariadb sql 查询,但收到以下错误:
1064 (42000):您的 SQL 语法有错误;检查手册 对应于正确语法的 MariaDB 服务器版本 在第 1 行的“%s”附近使用
我是 python 新手,我不知道我做错了什么。我认为 sql 是有效的,因为我尝试过,并且之前也使用过相同的语法。
这是无效的代码:
import mysql.connector as mariadb
mariadb_connection = mariadb.connect()
cursor = mariadb_connection.cursor()
cursor.execute(operation="select max(parse_key) from nb.extracted_data where run_id = %s",params=(run_id))
我检查了 mysql 文档,我认为我这样做是正确的:
https://dev.mysql.com/doc/connector-python/en/connector-python-example-cursor-select.html
请帮我弄清楚我必须做些什么来纠正这个陈述。
【问题讨论】:
-
请去掉 params= 并重试
-
我原来就是这样。我摆脱了两个参数名称,但它仍然不起作用: cursor.execute("SELECT max(parse_key) FROM nb.extracted_data WHERE run_id=%s",(run_id))
-
在 run_id 和右括号之间加一个逗号,如下所示:
(run_id,)。在 Python 中,只有一个元素的元组很有趣。或者(我不确定它会起作用),而是在参数周围使用方括号。 -
做到了!我什至尝试将它转换为一个元组,但没有奏效。感谢@brentertainer
标签: python mysql python-3.x mariadb