我有一个奇怪的问题,我无法获得带有参数的SQL查询以在where子句中进行字符串比较-我没有返回任何行。当我通过bash连接到MySQL数据库时,查询有效。
有效(进入我的行):
select * from my_table where my_column = 'my_string';
也可以(进入我的行):
cursor.execute(
"""
select *
from my_table
where my_column = 'my_string'
"""
)
不起作用(cursor.fetchall()
是[]
):
cursor.execute(
"""
select *
from my_table
where my_column = '%s'
""",
('my_string')
)
答案 0 :(得分:1)
删除引号:
cursor.execute(
"""
select *
from my_table
where my_column = %s
""",
('my_string')
)
答案 1 :(得分:1)
小心元组。我认为您需要('my_string',)
。
仅供参考,我写了@tscherg在问题下方的评论中提到的原始评论。