Basi c Mysql выберите пункт «Где» не работает. Тот же запрос в CLI работает - PullRequest
0 голосов
/ 04 мая 2020

Я хочу сделать выбор с 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

Почему бы это не сработало?
Спасибо!

1 Ответ

1 голос
/ 04 мая 2020

Согласно https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-execute.html execute ожидает, что params (ie. Второй параметр) будет кортежем, а не строкой. Попробуйте использовать:

c.execute(sql, (subcategory,))
...