带有 Where 子句的基本 Mysql select 不起作用。 CLI 中的相同查询有效
Basic Mysql select with Where clause not working. Same query in CLI works
我想用 mysql 连接器做一个 select。我有这个:
subcategory = "Test"
c = mydb.cursor()
sql = "SELECT id FROM Department WHERE subcategory='%s'"
c.execute(sql, subcategory)
res = c.fetchone()
print(res)
输出:
None
但它总是 returns None。
如果我 运行 来自 mysql cli 的相同 select,它工作正常:
SELECT id FROM Department WHERE subcategory='Test'
输出:
1
为什么它不起作用?
谢谢!
根据 https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html execute
期望 params
(即第二个参数)是一个元组,而不是一个字符串。尝试使用:
c.execute(sql, (subcategory,))
我想用 mysql 连接器做一个 select。我有这个:
subcategory = "Test"
c = mydb.cursor()
sql = "SELECT id FROM Department WHERE subcategory='%s'"
c.execute(sql, subcategory)
res = c.fetchone()
print(res)
输出:
None
但它总是 returns None。 如果我 运行 来自 mysql cli 的相同 select,它工作正常:
SELECT id FROM Department WHERE subcategory='Test'
输出:
1
为什么它不起作用?
谢谢!
根据 https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html execute
期望 params
(即第二个参数)是一个元组,而不是一个字符串。尝试使用:
c.execute(sql, (subcategory,))