Basic Mysql select with Where子句不起作用。 CLI中的相同查询工作

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

我想用mysql连接器进行选择。我有这个:

    subcategory = "Test"
    c = mydb.cursor()
    sql = "SELECT id FROM Department WHERE subcategory='%s'"
    c.execute(sql, subcategory)
    res = c.fetchone()
    print(res)

输出:

None

但是它总是返回None。如果我从mysql cli运行相同的选择,它将正常工作:

SELECT id FROM Department WHERE subcategory='Test'

输出:

1

为什么不起作用?谢谢!

python mysql python-3.x mysql-python
1个回答
0
投票

根据https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.htmlexecute期望params(即第二个参数)是一个元组,而不是字符串。尝试使用:

c.execute(sql, (subcategory,))
© www.soinside.com 2019 - 2024. All rights reserved.