【问题标题】:Basic Mysql select with Where clause not working. Same query in CLI works带有 Where 子句的基本 Mysql 选择不起作用。 CLI 中的相同查询有效
【发布时间】:2020-08-18 23:35:47
【问题描述】:

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

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

输出:

None

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

SELECT id FROM Department WHERE subcategory='Test'

输出:

1

为什么它不起作用?
谢谢!

【问题讨论】:

  • 去掉%s周围的单引号
  • 没错,那些引号不应该在那里,谢谢。

标签: python mysql python-3.x mysql-python


【解决方案1】:

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

c.execute(sql, (subcategory,))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-24
    • 2021-12-12
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 2014-11-19
    相关资源
    最近更新 更多